#include <stdlib.h> #include<stdio.h> void sort(int a[],int n) { /Program/ int b,i,j; for (i=0;i<n;i++) { for (j=0;j<n-1;j++) { if (a(j)>a(j+1)) { b=a(j); a(j)=a(j+1); a(j+1)=b; } } } /********** End **********/ } int main() { int a[13],i; for(i=0;i<13;i++) a[i]=5; for(i=0;i<13;i++) printf("%3d",a[i]); printf("\n-------------------\n"); sort(a,13); for(i=0;i<13;i++) printf("%3d",a[i]); }
时间: 2023-12-08 22:05:19 浏览: 111
这是一段 C 语言代码,实现了一个冒泡排序算法。在 main 函数中定义了一个长度为 13 的整型数组 a,并赋值为 5。然后输出数组 a 的值。接着调用 sort 函数,对数组 a 进行排序。最后再次输出数组 a 的值,可以看到已经按照从小到大的顺序排列好了。值得注意的是,sort 函数并没有返回值,而是直接修改了传入的数组。
代码中存在一个错误,即在使用数组的时候应该使用中括号 [] 而不是小括号 ()。具体来说,第 8 行和第 10 行的 a(j) 应该修改为 a[j],才能正确访问数组元素。
修改后的代码如下:
```c
#include <stdlib.h>
#include <stdio.h>
void sort(int a[], int n) {
int b, i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < n - 1; j++) {
if (a[j] > a[j + 1]) {
b = a[j];
a[j] = a[j + 1];
a[j + 1] = b;
}
}
}
}
int main() {
int a[13], i;
for (i = 0; i < 13; i++) {
a[i] = 5;
}
for (i = 0; i < 13; i++) {
printf("%3d", a[i]);
}
printf("\n-------------------\n");
sort(a, 13);
for (i = 0; i < 13; i++) {
printf("%3d", a[i]);
}
return 0;
}
```
阅读全文