```c #include <stdio.h> // 冒泡排序函数 void bubble(int a[], int n) { int i, j, temp; for (i = 0; i < n - 1; i++) { // 控制排序轮数 for (j = 0; j < n - i - 1; j++) { // 每一轮比较次数 if (a[j] > a[j + 1]) { // 相邻元素比较交换 temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } } int main(void) { int n, a[10]; int i; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", &a[i]); bubble(a, n); for (i = 0; i < n; i++) printf("%d ", a[i]); printf("\n"); return 0; } ``` 额外需要注意的逻辑点: 1. 内层循环的终止条件是 `j < n - i - 1`,因为每一轮比较后,最大的数会“浮”到末尾,所以后面的数不需要再比较。 2. 交换元素时使用临时变量来保存其中一个值,避免直接覆盖导致数据丢失。 3. 输入数据时要确保数据的合法性,比如输入的数是否在合理范围内。 [2024-12-01 22:13:48 | AI写代码神器 | 350点数解答]