Страница 1 из 1

Перестановка элементов в массиве

Добавлено: 18 апр 2011, 13:36
silencer
Дан массив размером n<20, как поменять элементы относительно элемента(ов), находящихся по середине? Еще нужно учесть, что массив может состоять как из четного, так и нечетного кол-ва элементов.

Re: Перестановка элементов в массиве

Добавлено: 18 апр 2011, 15:26
silencer

Код: Выделить всё

#include <stdio.h>
#include <conio.h>
#define n 7

void main()
{
int q;
int a[n]={1, 2, 3, 4, 5, 6, 7};
for(int i=0; i<n;i++)
   {
   q=a[i];
   a[i]=a[i-n+1];
   a[i-n+1]=q;
   }

for(i=0;i<n;i++)
   printf("%d ",a[i]);
   getch();
}
Выдает какие-то мусорные значения, почему?

Re: Перестановка элементов в массиве

Добавлено: 18 апр 2011, 22:52
BulldozerBSG
=> (i-n+1) при i = 0, n = 7 индекс будет равен -6; ничего не настораживает? :)

Re: Перестановка элементов в массиве

Добавлено: 19 апр 2011, 10:30
Romeo
В корень проблемы зришь, дружище :)

Re: Перестановка элементов в массиве

Добавлено: 20 апр 2011, 10:30
BBB

Код: Выделить всё

for(int i=0; i<n/2; i++)
{
   q = a[i];
   a[i] = a[n-i-1];
   a[n-i-1] = q;
};