#include "stdio.h" #define N 10 main() {int a[N],i,j,k; for(i=0;i<N;i++) scanf("%d",a+i); for(k=1; ;k++) for( ;i<N-k;i++) if(a[i]<a[i+1]) {j=a[i]; ; ; } for(i=0;i<N;i++) printf((i%4)?"%4d":"\n%4d",a[i]); printf("\n"); }
时间: 2024-03-04 21:51:05 浏览: 56
#include<stdio.h>
这段代码是一个简单的冒泡排序实现,用于对输入的10个整数进行从大到小排序。其中,第一个for循环用于读入10个整数;第二个for循环用于循环N次,每次循环将最大的数放到数组的末尾;第三个for循环用于输出已排序的数组。这段代码中存在一些问题,比如第二个for循环的条件不完整,缺少循环变量i的初始值,以及缺少排序的核心部分。建议在第二个for循环中加上i的初始值和排序的核心部分,比如:
for(k=1;k<N;k++){
for(i=0;i<N-k;i++){
if(a[i]<a[i+1]){
j=a[i];
a[i]=a[i+1];
a[i+1]=j;
}
}
}
这样就可以正确实现冒泡排序了。
阅读全文