C用选择法对10个整数从小到大排序

#include<stdio.h>
int main()

{ int i,j,a[10],t;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(j=1;j<10;j++)

for(i=0;i<=9-j;i++)//这什么意思?????

if(a[i]>a[i+1])

{t=a[i+1];a[i+1]=a[i];a[i]=t;}

for(i=0;i<10;i++)

printf("%5d",a[i]);
return 0;
}
//不懂 求高手解释 是不是可以用冒泡法

第1个回答  2012-12-05
for(i=0;i<n;i++)
for(j<i+1;j<n;j++)追问

这个?

第2个回答  2012-12-04
这个貌似就是冒泡法。。。追问

for(i=0;i<=9-j;i++)//这什么意思?????

追答

这个你需要看一下冒泡法怎么排序的
for(j=1;ja[i+1])
{t=a[i+1];a[i+1]=a[i];a[i]=t;}

是两个嵌套的循环,外面大循环每循环一次就会将较大值交换到一个位置,for(i=0;i<=9-j;i++)是小循环,每次只要循环9-j次就可以将还 未排序的部分 的最大值交换到 未排序部分 的底部。
说的有点乱,还是看看排序的一些方法吧

追问

小循坏好像是的,因为每次提出了i个数 谢谢了

本回答被提问者采纳
相似回答