标题:选择法排序,怎么还是错的?
只看楼主
凉生泪Vin
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2015-11-4
结帖率:75%
已结贴  问题点数:5 回复次数:4 
选择法排序,怎么还是错的?
老师规定要调用子函数,可我这个为什么错了?
#include<stdio.h>
int main()
{
    int a[10],i,m;
    void selsort(int arr[],int n);
    printf("请输入十个整数:\n");
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    printf("正序是:\n");
    selsort(a,10);
    for(i=0;i<10;i++)
        printf("%d ",a[i]);
    printf("\n");
    return 0;
}
void selsort(int arr[],int n)
{
    int k,i=0,j=0,temp;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
            if(arr[k]>arr[j])
                k=j;
            if(k!=i)
            {
                temp=arr[k];
                arr[k]=arr[j];
                arr[j]=temp;
            }
    }
}
编译组建都是对的,运行不了。。

2015-11-07 18:47
凉生泪Vin
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2015-11-4
得分:0 
不要沉啊,求帮助TT

2015-11-07 20:35
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:5 
                arr[k]=arr[j];
                arr[j]=temp;
修改为
                arr[k]=arr[i];
                arr[i]=temp;
这么浅显的错误还要问好几天?基本不动脑子吧。

能编个毛线衣吗?
2015-11-08 12:38
凉生泪Vin
Rank: 1
等 级:新手上路
帖 子:12
专家分:5
注 册:2015-11-4
得分:0 
回复 4楼 wmf2014
或许我真没动脑子,但感觉自己有点不太理解,所以可能搞不懂
谢谢层主。
我再想一想。。。
2015-11-08 12:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-458986-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.756329 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved