| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 11458 人关注过本帖
标题:【求助】输入N个数字排序问题!
只看楼主 加入收藏
中华网安
Rank: 1
来 自:陕西 西安
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-12-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
【求助】输入N个数字排序问题!
要求:
①从键盘随便输入N个数字,然后将它们排序。
②不是denfine N 10 这样的;
③要求用C语言编写,在VC++6.0上面能够运行。
④最好提供源代码,加点注释!
搜索更多相关主题的帖子: 加点 键盘 源代码 C语言 最好 
2012-12-09 12:09
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 


[fly]存在即是合理[/fly]
2012-12-09 12:12
中华网安
Rank: 1
来 自:陕西 西安
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-12-9
收藏
得分:0 
#include"stdio.h"
#define N 5
void main()
{
    int a[N],i,j,temp;
    printf("请输入5个数字:\n");
    for(i=0;i<N;i++)
        scanf("%d",&a[i]);
    for(i=1;i<N;i++)
        for(j=0;j<N-i;j++)
            if(a[j]>a[j+1])
            {temp=a[j];a[j]=a[j+1];a[j+1]=temp;}
            printf("数字由小到大排列为:\n");
            for(i=0;i<N;i++)
                printf("%d\t",a[i]);
            printf("\n");
}

这是我自己写的,我想要一个随便输入几个数字都能排序的!
2012-12-09 12:14
loveccccc
Rank: 1
等 级:新手上路
帖 子:4
专家分:2
注 册:2012-11-19
收藏
得分:2 
#include <stdio.h>
#define N 100
 int main(){

    int a[N];
    int i,k,j=0,x;
    scanf("%d",&a[0]);
    while (x!=(-1))
    {    scanf("%d",&x);
        if (x>a[j])
            a[j+1]=x;
            for (i=0;;i++)
                if (x<a[i])
                    break;
                    {    for (k=j;k>(i-1);k--)
                            a[k+1]=a[k];
                                a[i]=x;
                    }

                                    for (i=0;i<=j+1;i++)
                                        printf("%5d",a[i]);
                                            j++;
    }

}
2012-12-09 12:18
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
回复 楼主 中华网安
估计是要用指针分配内存的方式


[fly]存在即是合理[/fly]
2012-12-09 12:22
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:8 
程序代码:
#include <stdio.h>
#include <stdlib.h>        //free和malloc的头文件
void main()
{
    int *a, i, j, temp, N;
//    printf("请输入5个数字:\n");
    scanf("%d", &N);
    a = (int *)malloc(N * sizeof(int));    //为指针a分配N个整形大小的空间
    for(i=0;i<N;i++)
        scanf("%d",&a[i]);
    for(i=1;i<N;i++)
        for(j=0;j<N-i;j++)
            if(a[j]>a[j+1])
            {
                temp=a[j];a[j]=a[j+1];a[j+1]=temp;
            }
    printf("数字由小到大排列为:\n");
    for(i=0;i<N;i++)
        printf("%d\t",a[i]);
    free(a);    a = NULL;    //记得释放掉
    printf("\n");
}
//其余部分未作改动


[fly]存在即是合理[/fly]
2012-12-09 12:28
中华网安
Rank: 1
来 自:陕西 西安
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-12-9
收藏
得分:0 
回复 4楼 loveccccc
你这个不是定义了100个了么?
2012-12-09 12:33
中华网安
Rank: 1
来 自:陕西 西安
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-12-9
收藏
得分:0 
回复 6楼 azzbcc
我们指针还没学,这个我看不懂啊!
你这个程序我拿去转了转,按enter 没反应啊!
2012-12-09 12:47
小小战士
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:569
专家分:1313
注 册:2012-11-3
收藏
得分:10 
#include<stdio.h>
//冒泡排序(小---大)
int main()
{
        int i,j,tmp,num;
        int str[100];

        printf("几个数:");//个数
        scanf("%d",&num);

        printf("请输入%d个整数:",num);//数
        for(i=0;i<num;i++)
        scanf("%d",&str[i]);

        printf("排序前:\n");
        for(i=0;i<num;i++)
        printf("%d ",str[i]);
        printf("\n");

        for(i=0;i<num-1;i++)//冒泡排序
        for(j=i+1;j<num;j++)
        if(str[i]>str[j])
        {tmp=str[i];str[i]=str[j];str[j]=tmp;}

        printf("排序后:\n");
        for(i=0;i<num;i++)
        printf("%d ",str[i]);
        printf("\n");
        return 0;
}
测试:
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 小小战士 于 2012-12-9 13:32 编辑 ]

小小战士,战士中的战斗机!
2012-12-09 12:57
uneasy
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-12-13
收藏
得分:0 
太酷啦
2016-12-13 11:02
快速回复:【求助】输入N个数字排序问题!
数据加载中...
 
   



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

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