Online Compiler C

#include <stdio.h> enum{p = 10}; int main() { int A[p], B[p]; for(int i = 0; i < p; i++) { scanf ("%d", &A[i]); } for(int i = 0; i < p; i++) { if (i == 0) { B[i] = A[p-1]; } else { B[i] = A[i-1]; } } for(int i = 0; i < p; i++) { printf ("%d", B[i]); } return 0; }
这段代码的功能是:读取10个整数存入数组A,然后将数组A中的每个元素循环右移一位(即最后一个元素移到第一个位置,其余元素依次后移)存入数组B,最后输出数组B。

代码中有一个小问题需要注意:输出时数字之间没有空格或换行,所有数字会连在一起显示。

- 检查一下输出格式,看看是否需要在每个数字之间添加空格或换行,让结果更清晰易读。
- 思考一下循环右移的逻辑:当i等于0时,B[0]被赋值为A[9];当i大于0时,B[i]被赋值为A[i-1]。这个逻辑是否正确实现了循环右移?