酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

输入n(1<=n<=10)个整数,将它们从小到大排序后输出,要求编写函数bubble()实现冒泡排序算法。 函数接口定义: void bubble (int a[ ], int n); 其中 a为数组,n为数据个数。 裁判测试程序样例: #include <stdio.h> void bubble (int a[ ], int n); 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; } /* 请在这里填写答案 */ 用c语言

```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点数解答]

相关提问