#include <stdio.h>
#define n 10
int main(void)
{
int arr[n];
int sum = arr[ n-1];
for (int i = 0; i < n; i++)
scanf("%d", &arr[i]);
for (int i=n-2; i >=0; i--)
{
arr[ i + 1 ] = arr [ i ];
}
arr[ 0 ] = sum;
for (int i = 0; i < n; i++)
printf("%d ", arr[i]);
printf("\n");
return 0;
}
1) Этот код считывает массив из 10 чисел, затем пытается выполнить циклический сдвиг его элементов вправо, но делает это некорректно из-за ошибки в логике и порядке операций.
2) Подсказки:
- Обрати внимание на то, в какой момент инициализируется переменная `sum`. Значение `arr[n-1]` берётся до того, как массив заполнен данными.
- Посмотри внимательно на алгоритм сдвига внутри цикла `for (int i=n-2; i >=0; i--)`. Он перезаписывает элементы, начиная с конца, но не сохраняет исходное последнее значение для корректного переноса в начало.