11
Циклічне зрушення
Задача: зрушити елементи масиву вліво на 1 комірку, перший елемент стає на місце останнього.
0 1 2 3 … N-2 N-1
3 5 8 1 … 9 7
5 8 1 … 9 7 3
Алгоритм:
A[0]=A[1]; A[1]=A[2];… A[N-2]=A[N-1];
Цикл: чому не N?
for ( i = 0; i < N-1; i ++) |
? Що невірно? |
|
A[i] = A[i+1];
12
Програма
main()
{
const int N = 10; int A[N], i, c;
//заповнити масив
//вивести початковий масив c = A[0];
for ( i = 0; i < N-1; i ++)
A[i] = A[i+1]; A[N-1] = c;
//вивести отриманий масив
}
13
Завдання
«4»: Заповнити масив з 10 елементів випадковими числами в інтервалі [- 10.10] і виконати циклічне зрушення УПРАВО.
Приклад:
Початковий масив:
4 -5 |
3 |
10 -4 -6 8 -10 1 0 |
|
Результат: |
|
||
0 |
4 |
-5 |
3 10 -4 -6 8 -10 1 |
«5»: Заповнити масив з 12 елементів випадковими числами в інтервалі [- 12.12] і виконати циклічне зрушення УПРАВО на 4 елементи.
Приклад:
Початковий |
масив: |
|
|
|
|
|
|||
4 -5 |
3 |
10 |
-4 |
-6 |
8 -10 |
1 0 |
5 |
7 |
|
Результат: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
||
-4 -6 |
8 -10 |
|
1 |
0 |
5 7 |
4 -5 |
3 |
10 |
|
|
|||||||||
|
|||||||||
|