| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 916 人关注过本帖
标题:我用这选择排序法输入6,7,1,3,5可是排序结果确实1,5,3,6,7请问代码 ...
取消只看楼主 加入收藏
wuchen
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-1-31
收藏
 问题点数:0 回复次数:3 
我用这选择排序法输入6,7,1,3,5可是排序结果确实1,5,3,6,7请问代码哪里出了问题?
程序代码:
#include <stdio.h>

void out(int array_1[], int n);
int main (void)
{
    int array_1[5];
    int n = sizeof(array_1) / sizeof(int);
    int i;
    printf("please input the number of array: ");
    for ( i = 0; i < n; i++)
    {
        scanf("%d",&array_1[i]);
    }
    int a, b;
    for (a = 0; a < n-1; a++){
        int pos = a;
        for (b = a + 1; b < n; b++){
            if (array_1[pos]>array_1[b]){
                pos = b;
            }
            if (pos != a){
                int temp = array_1[a];
                array_1[a] = array_1[pos];
                array_1[pos] = temp;
            }
        }
    }
    out(array_1, n);
    return 0;
}

void out(int array_1[], int n)
{
    int i;
    for (i = 0; i < n; i++){
        printf("%d ", array_1[i]);
    }
    printf("\n");
    return;
}

错误已经找到,第二个if应该在外层循环里,而不是在内层循环


[此贴子已经被作者于2016-2-6 23:51编辑过]

2016-02-06 21:53
wuchen
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-1-31
收藏
得分:0 
回复 2楼 qq1023569223
谢谢我找到原因了,第二个if应该是在外层循环里
我这个代码是跟视频教程学的。
程序代码:
for (b = a + 1; b < N; b++)
        {
            if(array[a]>array[b])
            {
                tmp=array[a];
                array[a]=array[b];
                array[b]=tmp;
            }
        }
如果按照你的代码,这块是不是做交换的次数太多了?
2016-02-06 23:14
wuchen
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-1-31
收藏
得分:0 
回复 4楼 qq1023569223
嗯,是的,假设小数在后面,交换的次数可能就会多了,我是最近看着视频刚学到这,
2016-02-06 23:39
wuchen
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-1-31
收藏
得分:0 
回复 6楼 qq1023569223
还行,看视频,记笔记,然后自己在练习几遍,不扎实的第二天再敲一遍代码,我是看职坐标的那个 零基础学C语言那个视频,至于层次和调理,也都是照着那个视频了,非常感谢,过年了还在帮小白解决问题。
2016-02-06 23:50
快速回复:我用这选择排序法输入6,7,1,3,5可是排序结果确实1,5,3,6,7请问 ...
数据加载中...
 
   



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

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