| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4021 人关注过本帖
标题:[困惑]怎样对一组不确定个数的数据进行排序???
只看楼主 加入收藏
cyl_jay
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2007-5-2
收藏
 问题点数:0 回复次数:19 
[困惑]怎样对一组不确定个数的数据进行排序???

  我是一个新手,前段时间学习了冒泡、插入、SHELL等几种排序法,对这些排序法
~~思路倒是理解了,但同时也发现了一个问题,排序时都是预先定义了数组元素的个数
但大多时候我们都不确定要排序数据的个数,于是就写了一段程序
#include "stdio.h"
main()
{
int i,num,a[i];
int j=0;
printf("输入任意个整数并以-1结束:");
do
{ scanf("%d",&num);
j++;
}while(num!=-1);
for(i=0;i<j-1;i++)
scanf("%d",&a[i]);
for(i=0;i<j-1;i++)
printf("%d",a[i]);
}
当然,没法运行!!
最后才知道在上述程序中说明数组时必须定义元素的个数---可能还有其它错误多多包涵,请指出,也就是C中不允许有动态数组的存在.
用什么方法才能实现对一组不确定个数的数据进行排序呢?


搜索更多相关主题的帖子: 数据 困惑 定义 
2007-05-04 22:54
hellozj
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-5-4
收藏
得分:0 
个数不确定? 是要你输入来说明有多少个数还是就是不确定?
2007-05-04 23:06
jiangliangju
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-3-9
收藏
得分:0 

用指针好像可以

2007-05-04 23:09
cyl_jay
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2007-5-2
收藏
得分:0 
回复:(hellozj)个数不确定? 是要你输入来说明有多...
  列如在Excel中,用户可以对任意多个数据进行排序,你想输入多少个都行,
主动权在用户手中.
  但C程序中,程序开始就确定了要排序的数据的个数,这个主动权在程序手中.
 我是这个意思!
2007-05-05 00:13
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
你可以传递一个参数告诉排序算法当前需要排序的数组个数总共是多少,然后再进行排序

Excel也是那么做的

淘宝杜琨
2007-05-05 08:05
编程怪兽
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-4-28
收藏
得分:0 

首先定义一个大点的数组比如int a[100];然后你可以在输入数据的时候,设个辅助变量例如k,对k初始化令k=0;然后每输入一个有效的数据,实行K++;然后排序时这样就知道了数组元素的个数了。
你试试吧!


2007-05-05 09:00
cyl_jay
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2007-5-2
收藏
得分:0 
回复:(神vLinux飘飘)你可以传递一个参数告诉排序算...
具体怎样实现呢?
复杂不?
2007-05-05 14:11
cyl_jay
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2007-5-2
收藏
得分:0 
回复:(编程怪兽)首先定义一个大点的数组比如int a[...
  应该不行吧,你定义了a[100],就必须录入100个数字,否则程序不能运行
2007-05-05 14:34
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用编程怪兽在2007-5-5 9:00:26的发言:

首先定义一个大点的数组比如int a[100];然后你可以在输入数据的时候,设个辅助变量例如k,对k初始化令k=0;然后每输入一个有效的数据,实行K++;然后排序时这样就知道了数组元素的个数了。
你试试吧!

但你怎么使得你输入数据在什么时候停止呢?
文件读入?非法停止读入?


倚天照海花无数,流水高山心自知。
2007-05-05 14:59
福尔摩斯
Rank: 5Rank: 5
等 级:贵宾
威 望:12
帖 子:4011
专家分:370
注 册:2006-8-15
收藏
得分:0 
以下是引用nuciewth在2007-5-5 14:59:02的发言:

但你怎么使得你输入数据在什么时候停止呢?
文件读入?非法停止读入?

我不推荐使用那种方法,非常侥幸

如果那个数据比你假设的要大如何呢?

还要重新设置


to nuciewth:他这种方法要解决很简单

只要设置一个伴随参数就可以解决了

比如:int a[100],i,n;

然后让 n 逐个赋值,i自加

排序的时候 n 值改变,i不改变就可以了


自我放逐。。。
2007-05-05 17:33
快速回复:[困惑]怎样对一组不确定个数的数据进行排序???
数据加载中...
 
   



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

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