Онлайн компилятор C

#include <stdio.h> int main() { int arr[10]; int i, a; for(i=0;i<10;i++) { scanf("%d", &arr[i]); } a=arr[9]; for(i=8;i>=0;i--) { arr[i+1]=arr[i]; } arr[0]=a; for(i=0;i<10;i++) { printf("%d ", arr[i]); } return 0; }
这段代码的功能是:读取10个整数存入数组,然后将数组元素循环右移一位(最后一个元素移到第一个位置),最后输出移动后的数组。

- 代码中 `a=arr[9]` 保存了最后一个元素,然后从倒数第二个元素开始依次向后覆盖,最后将保存的 `a` 放到第一个位置,实现了右移一位的效果。

- 注意:如果题目要求的是循环右移一位,这个逻辑是正确的。但如果题目要求的是其他移位方式(比如左移或移动多位),则需要调整循环方向和次数。请确认题目要求是否完全匹配。