#include <stdio.h>
int main()
{
int i,j,tep;
int a[5];
printf("请输入5位正整数:");
for(i=0;i<5;i++)
scanf("%d,",&a[i]);
for(i=0;i<4;i++)//先进行内循环一遍
{
for(j=0;j<4;j++)//在进行外循环4遍,为什么不是5;因为用的是比较方法最后一个不用主动比较可以忽略
{
if(a[j]>a[j+1])//进行比较如果a[j]大于a[j+1]则试行,小于则跳过重新执行。
{
tep=a[j+1]; //先把a[j+1]放到tep
a[j+1]=a[j]; //再把a[j]赋值给a[j+1]
a[j]=tep; //最后将tep赋值给a[j]
}
}
}
printf("排序后为:");
for(i=0;i<5;i++)
{
printf("%d ",a[i]);
}
return 0;
}
为什么是4而不是5
例子推算循环过程
最终结果
如果要从大到小只需要修改:if(a[j]>a[j+1])为if(a[j]<a[j+1])即可