Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2016, 18:27   #1
Yulia24*
Пользователь
 
Регистрация: 16.10.2016
Сообщений: 13
По умолчанию Язык Си. Массив.

Имеется массив из четного числа элементов. Поменять местами его половины следующим образом: первый элемент поменять с последним, второй - с предпоследним и т.д.

Код:
#include<stdio.h>
int main ()
{
    int x,x2,p,c,i=0;
    printf("vvedite kolichestvo elemntov massiva: ");
    scanf("%i", &x);
    if (x<=0)
    {
    printf ("error");
    }
    else{
    int a[x];
    p=x%2;
    x2=x;
    if (p!=0)
    {
        printf ("error");
    }
    else
    x=x2;
    {
        while (x>0)
        {
            printf ("a[i]= ", i);
            scanf("%i", &a[i]);
            i++;
            x--;
        }
        printf("poluchenny massiv:\n");

       for (i=0;i<x2;i++)
       {
       c=a[0];
       a[i]=a[x];
       a[x]=c;
       x--;
       }
    for(i=0;i<x2;i++)
        {
    	printf ("%i", a[i]);
    	}
    }
    }
    return 0;
}
Здравствуйте, была задана задача, я ее сделала принесла на проверку, преподаватель объяснил что я просто вывожу числа в другом порядке, а нужно именно поменять значения массива местами, после всяческих исправлений я поняла что совсем запуталась, обращаюсь к вам за помощью.
Yulia24* вне форума Ответить с цитированием
Старый 18.10.2016, 11:50   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,619
По умолчанию

Вообще-то эта замена производится вот таким простым циклом :

Код:
 
      n2 = n/2 ; n1 = n-1 ;
      for (i=0;i<n2;i++)
       {
       i1 =  n1-i ;
       c=a[i];
       a[i]=a[i1];
       a[i1]=c;
       }
здксь n - число элементов в массиве, i1,n1,n2 - вспомогательные переменные.

Последний раз редактировалось digitalis; 18.10.2016 в 11:55.
digitalis вне форума Ответить с цитированием
Старый 20.10.2016, 10:53   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,619
По умолчанию

Не стоит благодарностей, внучка, я рад, что тебе помогло.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дан массив чисел В[0:N]. Записать подряд в массив А элементы массива В, имеющие четные индексы,(язык си++) yury.zanilov Помощь студентам 9 15.03.2012 21:55
Дан массив из N целых чисел. Получить из него массив чисел по модулю меньших 10 и отсортировать его(язык си++) mitja-zakelidis Помощь студентам 2 15.03.2012 03:10
Массив - Нужно написать массив и распечатать на экран с конца в начало(язык С++) econ Помощь студентам 1 29.05.2011 22:02