一世轻尘 发表于 2020-12-25 19:00:40

选择排序无输出

#include<stdio.h>
void sort(int a[],int length);

int main()
{
        int a;
        int k;
        printf("请输入十个整数\n");
        for(k=0;k<10;k++)
        {
                scanf("%d",&a);
        }
        int length;
        length=sizeof(a)/sizeof(a);
        sort(a,length);
        printf("排序后的结果是:\n");
        for(k=0;k<length;k++)
        printf("%d",a);
        return 0;
}



void sort(int a[],int length)
{
        int i,j,min,temp;
        for(i=0;i<length-1;i++)
        {
                min=i;
                for(j=i+1;i<length;j++)
                {
                        if(a>a)
                        {
                                min=j;
                        }
                }
                temp=a;
                a=a;
                a=temp;
        }
}为啥没输出鸭{:10_254:}

风过无痕1989 发表于 2020-12-25 19:14:26

本帖最后由 风过无痕1989 于 2020-12-25 19:44 编辑

第30行错误,i<length 应该是:j<length

一世轻尘 发表于 2020-12-25 19:18:07

本帖最后由 一世轻尘 于 2020-12-25 19:19 编辑

风过无痕1989 发表于 2020-12-25 19:14
你将 i 、j 赋给 min ?

选择排序,min指的是最小值在数组中的那个位置,然后把它赋给a【0】,然后在继续第二项

风过无痕1989 发表于 2020-12-25 19:45:05

一世轻尘 发表于 2020-12-25 19:18
选择排序,min指的是最小值在数组中的那个位置,然后把它赋给a【0】,然后在继续第二项

看前面的,我改了

一世轻尘 发表于 2020-12-25 19:48:02

风过无痕1989 发表于 2020-12-25 19:45
看前面的,我改了

擦,我是猪{:10_247:}

风过无痕1989 发表于 2020-12-25 19:53:58

一世轻尘 发表于 2020-12-25 19:48
擦,我是猪

这种错误,不奇怪。我调试时也纳闷,j 怎么自增到15去了
另外,第18行的输出,%d 后面加个空格,输出会好看一些

jackz007 发表于 2020-12-25 19:58:16

      第 30 行:错误
                for(j=i+1;i<length;j++)
      改为:
                for(j=i+1;j<length;j++)
页: [1]
查看完整版本: 选择排序无输出