外循环写的不对,内循环也是错了。首先外循环要从0开始,直到8就可以结束了。内循环从i +1开始,到9就可以结束了,所以外循环应该这样写:for (i=0;i<9;i++),内循环为:for (j=i+1;j<10;j++)。外循环从第一个数也就是a[0]开始,依次和后面的每一个数进行比较,所以内循环从i +1开始,直到最后一个数为止,这样就能保证第一个数为最大的。然后再开始第二个数,以此类推。等到外循环到a [8]也就是倒数第二个数时,内循环就执行一次,所有的数就能够比较完了,所以没必要再进行最后一个数了。
#include
int main()
{
int a[10],i,j,k,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=1;i<10;i++)
{
for(j=0;j{
if(a[i]>a[j])
{
t=a[i];
for(k=i-1;k>=j;k--)
a[k+1]=a[k];
a[j]=t;
break;
}
}
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}