大神们看看是哪里错了!,帮忙找出来谢谢!

/*选择排序算法*/
#include
int main(void)
{
int sz[10]={9,8,12,1,2,3,6,68,99,88};
int min=sz[0];
for(int i=0;i<10;i++)
{
int jl=i;
min=sz[i];
for(int j=i+1;j<10;j++)
{
if(sz[i]<min)
{
min=sz[j];
jl=j;
}
}
int t=sz[i];
sz[i]=min;
sz[jl]=t;
}
for(int k=0;k<10;k++)
{
printf("a=%d\n",sz[i]);
}
return 0;
} 图片说明

4个回答

13行的sz[i]改成sz[j]就行了

 #include <stdio.h>
int main(void)
{
int sz[10]={9,8,12,1,2,3,6,68,99,88};
int len = sizeof(sz)/sizeof(sz[0]);

for(i=0;i<len-1;i++)
{
    for(j=i+1;j<len;j++)
    {
        if(sz[i]<sz[j])
        {
            temp = sz[i];
            sz[i]=sz[j];
            sz[j]=temp;
        }
    }

}

for(i=0;i<len;i++)
{
   printf("%4d",sz[i]);
}
return 0;
}
French888
French888 谢谢你!
2 年多之前 回复

int len = sizeof(sz)/sizeof(sz[0]); 求数组元素个数;

选择排序的思想 是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 

最好能把注解也写上,谢谢各位!

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问