Лекция: Задачи 2-ого класса
Обмен элементов внутри массива выполняется с использованием вспомогательной переменной:
int R=a[I];a[I]=a[J]; a[J]:=R; // обмен a[I] и a[J] элементов массива.
Пример1.
Перевернуть массив.
//формирование массива
for(int i=0,j=n-1;i<j;i++,j--)
{int r=a[i];
a[i]=a[j];
a[j]=r;}
//вывод массива
Пример 2.
Поменять местами пары элементов в массиве: 1и2, 3 и 4, 5 и 6 и т. д.
for(int i=0;i<n-1;i+=2)
{int r=a[i];
a[i]=a[i+1];
a[i+1]=r;}
Пример 3.
Циклически сдвинуть массив на к элементов влево (вправо).
int k,i,t,r;
cout<<"\nK=?";cin>>k;
for(t=0;t<k;t++)
{
r=a[0];
for(int i=0;i<n-1;i++)
a[i]=a[i+1];
a[n-1]=r;
}
Задачи 3-ого класса
При синхронной обработке массивов индексы при переборе массивов меняются одинаково.
Пример 1. Заданы два массива из n целых элементов. Получить массив c, где c[I]=a[I]+b[I].
For(int I=0;I<n;I++)c[I]=a[I]+b[I];
При асинхронной обработке массивов индекс каждого массива меняется по своей схеме.
Пример 2. В массиве целых чисел все отрицательные элементы перенести в начало массива.
int b[10];//вспомогательный массив
int i,j=0;
for(i=0;i<n;i++)
if(a[i]<0){b[j]=a[i];j++;}//переписываем из а в b все отрицательные элементы
for(i=0;i<n;i++)
if(a[i]>=0){b[j]=a[i];j++;}// переписываем из а в b все положительные элементы
for(i=0;i<n;i++) cout<<b[I]<<” “;
Пример3.
Удалить из массива все четные числа
int b[10];
int i,j=0;
for(i=0;i<n;i++)
if(a[i]%2!=0){b[j]=a[i];j++;}
for(i=0;i<j;i++) cout<<b[i]<<" ";
cout<<"\n";