Online Compiler C

#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--)`. Он перезаписывает элементы, начиная с конца, но не сохраняет исходное последнее значение для корректного переноса в начало.