Online Compiler C

#include <stdio.h> int main() { const int n = 12; int arr[n]; int i, a,b,c,d; for (i = 0; i < 12; i++) { scanf("%d", &arr[i]); } a=arr[8]; b=arr[9]; c=arr[10]; d=arr[11]; for(i=11;i>0;i--){ arr[i]=arr[i-4]; } arr[0]=a; arr[1]=b; arr[2]=c; arr[3]=d; for(i=0;i<12;i++){ printf("%d",arr[i]); if (i!=11){ printf(" "); } } printf("\n"); return 0; }
这段代码的功能是:读取12个整数存入数组,然后将数组的最后4个元素(索引8-11)移动到数组的开头(索引0-3),同时将原来的前8个元素(索引0-7)向后移动4个位置。最后输出移动后的数组。

代码逻辑是正确的,但有一个潜在问题需要注意:

- 代码中使用了常量 `n = 12`,但在循环条件中直接写了数字 `12` 而不是使用变量 `n`。如果将来修改 `n` 的值,循环条件不会自动更新,可能导致数组越界或逻辑错误。建议在循环条件中使用 `n` 来保持一致性。