Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C] Массивы и строки 
:(
    Опции темы
Scorpio
Дата 30.10.2006, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 2.10.2006
Где: Россия, г. Санкт- Петербург

Репутация: нет
Всего: нет



Требуется помощь в решении задачи: 

«Даны действительные числа a(1), ....., a(n). Получить a(n), a(n-1), ......., a(1).»  (a(1) - это а с индексом 1)

Большое спасибо!
PM MAIL   Вверх
Rockie
Дата 31.10.2006, 02:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 13
Всего: 31



Scorpio, нужно развернуть массив действительных чисел?
Код
#include<stdio.h>

#define N 10

int main(){
double array[N] = {1, 3, 2, 5, 4, 7, 6, 10, 8, 4};
double temp;
int i, j;

for(i=0, j=N-1; i<=j; i++,j--) // swap elements
 { temp = array[i];
   array[i]=array[j];
   array[j]=temp;
 }

for(i=0;i<N;i++)
 printf("%0.2lf ",array[i]);

 return 0;
}



--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
Scorpio
Дата 14.11.2006, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 2.10.2006
Где: Россия, г. Санкт- Петербург

Репутация: нет
Всего: нет



Спасибо, но это немного не то, что мне надо. smile  Ты написал программу для статического массива который изначально задан. Ты не мог бы модифицировать программу так, чтобы массив был необязательно динамическим, но строка чисел вводилась с клавиатуры пользователем!

(Извиняюсь, что поздно ответил. Только сейчас увидел твое сообщение!)
PM MAIL   Вверх
Kuvaldis
Дата 14.11.2006, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


механик-вредитель
***


Профиль
Группа: Участник Клуба
Сообщений: 1189
Регистрация: 16.6.2006
Где: Минск

Репутация: 32
Всего: 61



Scorpio, 
Код

//-------------------------------------------------    
#include<stdio.h>    
#include<stdlib.h>    
//-------------------------------------------------     
#define N 100    
//-------------------------------------------------     
int main()    
{     
    double array[N];     
    double temp;              // для обмена    
    int    len;               // вводимая длина массива    
    int i, j;     
    puts("Input vector size");    // запрос на ввод длины тассива    
    scanf("%d", &len);              // получение этой длины
    // запрос на ввод элементов массива
    puts("Input vector elements");    
    // ввод в цикле этих элементов
    for (i = 0; i < len; i++)    
        scanf("%lf", array + i);    // равносильно &mas[i] = array + i (адрес элемента i) 
    
    /* основная функция: двигаемся с обоих концов массива
       и меняем эти элементы местами, попарно, т.е. (0, len - 1), (1, len - 2)...
       до тех пор, пока не дойдем до середины массива
    */
    for (i = 0, j = len - 1; i <= j; i++,j--)  // swap elements     
    {    
        temp = array[i];     // вспомогательная переменная для обмена
        array[i] = array[j];     
        array[j] = temp;     
    }     
    puts("After reverse:");    // вывод в цикле получившегося массива
    for (i = 0; i < len; i++)     
      printf("%3.0lf ",array[i]);    
     
    puts("");                // перевод на новую строку
    system("pause");        // вывод строки "Нажмите любую клавишу..."
    return 0;     
}    
//-------------------------------------------------


Это сообщение отредактировал(а) Kuvaldis - 14.11.2006, 20:09


--------------------
Помни - когда ты спишь, враг не дремлет
Спи чаще и дольше, изматывай врага бессоницей
PM MAIL ICQ   Вверх
Scorpio
Дата 14.11.2006, 19:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 2.10.2006
Где: Россия, г. Санкт- Петербург

Репутация: нет
Всего: нет



Kuvaldis, 

Ты не мог бы объяснить принцип работы программы? А ты у себя на компе программу проверял? А то у меня скомпилировалась, запустилась, ввел в нее данные, а он вместо ряда чифр выдал беспорядочный набор символов, букв и цифр. Поэтому объясни, пожалуйста, как эта программа работает.  
PM MAIL   Вверх
Kuvaldis
Дата 14.11.2006, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


механик-вредитель
***


Профиль
Группа: Участник Клуба
Сообщений: 1189
Регистрация: 16.6.2006
Где: Минск

Репутация: 32
Всего: 61



Scorpio, 
Цитата

? А ты у себя на компе программу проверял?

Благодаря Volvo я теперь ВСЕГДА проверяю свои варианты перед отправкой (на этот раз в Visual 6 и Builder 6)
Цитата

 Поэтому объясни, пожалуйста, как эта программа работает. 

Добавил комментарии, см. мой предыдущий пост


--------------------
Помни - когда ты спишь, враг не дремлет
Спи чаще и дольше, изматывай врага бессоницей
PM MAIL ICQ   Вверх
Scorpio
Дата 14.11.2006, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 2.10.2006
Где: Россия, г. Санкт- Петербург

Репутация: нет
Всего: нет



Цитата

Благодаря Volvo я теперь ВСЕГДА проверяю свои варианты перед отправкой (на этот раз в Visual 6 и Builder 6)


И у Тебя все работает? Я извиняюсь, но у меня на Bloodshed Dev-C++ работает как я описал выше, а на TurboC 2.0 вообще не компилируется!

P.S. А что такое Volvo?
PM MAIL   Вверх
Kuvaldis
Дата 14.11.2006, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


механик-вредитель
***


Профиль
Группа: Участник Клуба
Сообщений: 1189
Регистрация: 16.6.2006
Где: Минск

Репутация: 32
Всего: 61



Scorpio, 
Цитата

И у Тебя все работает? Я извиняюсь, но у меня на Bloodshed Dev-C++ работает как я описал выше, а на TurboC 2.0 вообще не компилируется!

Проверил и в DOS варианте в Turbo C++ 3.0 - работает
Цитата

P.S. А что такое Volvo?
 smile 
Это не что, а кто: модератор раздела Pascal, который ОЧЕНЬ не любит, когда выкладываются нерабочие программы

Это сообщение отредактировал(а) Kuvaldis - 14.11.2006, 21:28


--------------------
Помни - когда ты спишь, враг не дремлет
Спи чаще и дольше, изматывай врага бессоницей
PM MAIL ICQ   Вверх
Rockie
Дата 14.11.2006, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 13
Всего: 31



Цитата(Scorpio @  14.11.2006,  19:56 Найти цитируемый пост)
 А то у меня скомпилировалась, запустилась, ввел в нее данные, а он вместо ряда чифр выдал беспорядочный набор символов, букв и цифр. Поэтому объясни, пожалуйста, как эта программа работает.  

Scorpio, работает. сначала вводишь сколько элементов в массиве, потом сами элементы. 

Код
for(i=0,              // i указывает на первый элемент массива
    j=N-1;            // j на последний  
    i<=j;             // пока i не пересечется с j (либо пока они не станут равны, если кол-во элементов нечетное)
    i++,j--)          // двигаем i и j навстречу друг другу к середине массива  

                      // и меняем array[i] и array[j] местами
 { temp = array[i];   
   array[i]=array[j];
   array[j]=temp;
 }






--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
Dov
Дата 15.11.2006, 02:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


аСинизатор
***


Профиль
Группа: Завсегдатай
Сообщений: 1721
Регистрация: 10.5.2003
Где: Эрец-Исраэль

Репутация: 50
Всего: 88



Цитата(Rockie @  14.11.2006,  22:11 Найти цитируемый пост)
i<=j;             // пока i не пересечется с j (либо пока они не станут равны, если кол-во элементов нечетное)

Ну, это лишнее, имхо. Если кол-во элементов нечетное, впрочем, как и четное, достаточно этого:
Код
i < j;
 
 smile 



--------------------
Тут вечности запах томительный,
И свежие фрукты дешевые, 
А климат у нас – изумительный, 
И только соседи – #уевые. 
                           Игорь Губерман.
PM   Вверх
Rockie
Дата 15.11.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 13
Всего: 31



Цитата(Dov @  15.11.2006,  02:08 Найти цитируемый пост)
Ну, это лишнее, имхо. Если кол-во элементов нечетное, впрочем, как и четное, достаточно этого

да, спасибо



--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0566 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.