| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6979 人关注过本帖
标题:用选择法对数组中10个整数按由小到大排序(改错)
只看楼主 加入收藏
BINGQING
Rank: 2
来 自:武汉
等 级:论坛游民
帖 子:98
专家分:75
注 册:2010-3-29
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
用选择法对数组中10个整数按由小到大排序(改错)
用选择法对数组中10个整数按由小到大排序(改错)
#define N   10
void sort (int array[ ],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        if(array[j]<array[k])
        k=j;
        t=array[k];
        array[k]=array[i];
        array[i]=t;
    }
}

void main()
{
   
    int i,array[N];
    for(i=0;i<=N-1;i++)
    {
        printf("input a number:");
    scanf("%d",&array[i]);
    }
    sort ( array[ ], N);
    for(i=0;i<=N-1;i++)
    printf("%d",array[i]);
   
   
}
搜索更多相关主题的帖子: 由小到大 整数 改错 选择 
2010-05-27 11:26
实数虚数
Rank: 2
来 自:江西抚州
等 级:论坛游民
帖 子:27
专家分:37
注 册:2010-5-17
收藏
得分:10 
#define N   10
#include<stdio.h>//用vc++环境要加这个,否则编译不能通过
void sort (int array[ ],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        if(array[j]<array[k])
        k=j;
        t=array[k];
        array[k]=array[i];
        array[i]=t;
    }
}

void main()
{
   
    int i,array[N];
    for(i=0;i<=N-1;i++)
    {
        printf("input a number:");
    scanf("%d",&array[i]);
    }
    sort ( array, N);//数组作为实参,只需传递数组名
    for(i=0;i<=N-1;i++)
    printf("%d\n",array[i]);
   
   
}
2010-05-27 12:22
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
收藏
得分:5 
#include "stdio.h"
#define N   10
void sort (int array[],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        if(array[j]<array[k])
        k=j;
        t=array[k];
        array[k]=array[i];
        array[i]=t;
    }
    for(i=0;i<=N-1;i++)
    printf("%d,",array[i]);
}

void main()
{
    void sort (int array[],int n);
    int i,array[N];
    for(i=0;i<=N-1;i++)
    {
        printf("input a number:");
    scanf("%d",&array[i]);
    }
    sort (array, N);   
}

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-05-27 12:23
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
收藏
得分:5 
#define N   10     //调用输入与输出的函数头文件没有加上#include<stdio.h>
void sort (int array[ ],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        if(array[j]<array[k])
        k=j;
        t=array[k];
        array[k]=array[i];
        array[i]=t;
    }
}

void main()
{
   
    int i,array[N];
    for(i=0;i<=N-1;i++)
    {
        printf("input a number:");
    scanf("%d",&array[i]);
    }
    sort ( array[ ], N);//调用数组做实参时,只写上数组名就行了后面的不用写;
    for(i=0;i<=N-1;i++)
    printf("%d",array[i]);
   
   
}

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-05-27 12:28
zhuxu0423
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:59
专家分:101
注 册:2010-4-12
收藏
得分:0 
void sort(int array[],int n)
{int i,j,k,t;
 for(i=0;i<n-1;i++)
   {k=i;
   for(j=i+1;j<n;j++)
     if(array[j]<array[k])k=j;
    t=array[k];array[k]=array[i];array[i]=t;}
}
2010-05-27 12:49
源本英明C
Rank: 3Rank: 3
来 自:日本
等 级:论坛游侠
帖 子:113
专家分:154
注 册:2010-5-14
收藏
得分:0 
在函数sort中,
if(array[j]<array[k])
        k=j;
        t=array[k];
        array[k]=array[i];
        array[i]=t;
这条语句根本没有能完成排序的功能。

#include <stdio.h>
#define N   10
void sort (int array[ ],int n)
{
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
        k=i;
        for(j=i+1;j<n;j++)
        if(array[j]<array[k])
        k=j;
        t=array[i];
        array[i]=array[k];
        array[k]=t;
    }
}

void main()
{
   
    int i,array[N];
    for(i=0;i<=N-1;i++)
    {
        printf("input a number:");
    scanf("%d",&array[i]);
    }
    sort ( array[ ], N);
    for(i=0;i<=N-1;i++)
    printf("%d",array[i]);   
}
这样应该能达到你要的结果了吧。建议你用min,不要老是用i,j,k等变量,看起来很不简单易懂的!

柔术:打败对手的最好方法就是心狠手辣,因为对手不会给你太多机会,如果他够厉害!
2010-05-27 13:48
源本英明C
Rank: 3Rank: 3
来 自:日本
等 级:论坛游侠
帖 子:113
专家分:154
注 册:2010-5-14
收藏
得分:0 
建议您用一些具有代表性的变量去定义,看上去就方便多了,如min 表示最小数,max表示最大是,ave表示平均数等...

柔术:打败对手的最好方法就是心狠手辣,因为对手不会给你太多机会,如果他够厉害!
2010-05-27 13:50
qiuyuan
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2009-11-12
收藏
得分:0 
#include <stdio.h>
#define N   10
void sort (int array[],int n)
{
    int i,j,k,t;
    for(i=0; i<n-1; i++)
    {
        k=i;
        for(j=i+1; j<n; j++)
            if(array[j]<array[k])
                k=j;
        t=array[k];
        array[k]=array[i];
        array[i]=t;

    }
}

int main()
{

    int i,array[N];
    printf("input a number:");
    for(i=0; i<=N-1; i++)
        scanf("%d",&array[i]);
    sort (&array[0], N);
    for(i=0; i<=N-1; i++)
        printf("%d ",array[i]);

    return 0;
}

这是我改过的,能运行。自己看看吧!呵呵

编出自己的风采!
2010-11-12 11:40
快速回复:用选择法对数组中10个整数按由小到大排序(改错)
数据加载中...
 
   



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

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