#include <stdio.h>
void bubbleSort(int arr[], int n) {
int i, j, temp;
for (i = 0; i < n - 1; i++) { // 外层循环控制排序的轮数
for (j = 0; j < n - i - 1; j++) { // 内层循环控制每一轮的比较和交换
if (arr[j] > arr[j + 1]) { // 如果当前元素大于下一个元素,则交换它们
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
// 输出当前轮排序的中间结果
for (int k = 0; k < n; k++) { // 输出当前数组状态
printf("%d ", arr[k]);
}
printf("\n"); // 每一轮输出后换行
}
}
int main() {
int n, arr[1000]; // 定义数组和变量n来存储整数数量
scanf("%d", &n); // 读取整数数量
for (int i = 0; i < n; i++) { // 读取整数并存储在数组中
scanf("%d", &arr[i]);
}
bubbleSort(arr, n); // 使用冒泡排序算法对数组进行排序并输出每一轮中间结果
return 0; // 程序结束,返回值为0表示正常结束
}
输出结果为

这段代码错在哪儿了?为什么结果不符合以下例子
Sample Input
10
2 8 4 6 1 10 7 3 5 9
Sample Output
1 2 8 4 6 3 10 7 5 9
1 2 3 8 4 6 5 10 7 9
1 2 3 4 8 5 6 7 10 9
1 2 3 4 5 8 6 7 9 10
1 2 3 4 5 6 8 7 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10