豆子游戏百家号:C语言高手请进看个代码,请教个问题.

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/04 08:09:29
#include<stdio.h>

main()
{
int i,j,k,a[10];
printf("Please Input Numbers:");
for(i=0;i<=9;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<9;i++)
{
for(j=9;j>i;j--)/*为什么不是j>=i,为什么是i>i?*/
{
if(a[j]<a[j-1])
{
k=a[j];
a[j]=a[j-1];
a[j-1]=k;
}
}
}
printf("The Numbers:");
for(i=0;i<=9;i++)
printf("a[%d]=%d ",i,a[i]);
}
/*为什么不是j>=i,为什么是i>i?*/

这是一个冒泡排序的程序

通过内外两层循环达到从小到大排序的目的

外层由i控制,i增加1表示最小的数已经跑到a[0]了,以此类推,当i=4时,j=5已经做一排序了,你用j>=i也不是不行啊,只是每次内循环都多一步而已。没有什么天大的错,只是时间消耗多一点。

自己把条件修改成j>=1后,再单步执行你写的代码,看看会出现什么结果了

C++的语言之中,运算符号不能连用