C语言的数组元素从小到大排序问题

#include<stdio.h>
main()
{int a[11],i,j=0,k;
printf("please enter 10 number:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<9;i++)
{
for(i=j+1;i<10;i++)
if(a[i]<a[j])
{
k=i;i=j;j=k;
}
i=j;j++;
}
for(i=0;i<10;i++)
printf("%-3d",a[i]);
}
求大神帮我看看有什么问题?为什么不能排序啊

第1个回答  2015-06-02
如果是冒泡
请将
for(i=j+1;i<10;i++)
if(a[i]<a[j])
{
k=i;i=j;j=k;
}
i=j;j++;
改为
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
k=a[j];a[j]=a[j+1];a[j+1]=k;
}本回答被提问者和网友采纳
第2个回答  2015-06-02
k=i;i=j;j=k;
应该交换的是a[i]和a[j],而不是i和j追问

为什么,能详细说明一下吗

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网