Страница 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;
};