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

#include <stdio.h> int main() { int arr[10]; for(int i=0;i<10;i++){ scanf("%d",&arr[i]); arr[9]=arr[0]; arr[0]=arr[9]; } printf("Hello, World!\n"); return 0; }
这段代码定义了一个长度为10的整数数组,然后循环读取10个数字存入数组。但在每次读取后,它都会把数组最后一个元素的值赋给第一个元素,再把第一个元素的值赋回最后一个元素,这实际上没有改变数组内容。最后程序只打印了"Hello, World!",没有输出数组。

- 你的代码在循环内部对数组进行了交换操作,但每次循环都会覆盖之前的值。注意看,你先把arr[9]赋给arr[0],又把arr[0]赋回arr[9],这相当于没有交换,而且arr[0]在第一次赋值后已经丢失了原始输入值。
- 程序最后没有输出数组的内容,所以用户看不到任何输入的数字。你需要考虑在循环结束后,用循环打印出数组元素,才能显示结果。