C语言rand函数问题

luty_arsenal 2011-11-05 06:12:04
各位大侠们大家好:

本人在编写一个程序时遇到一些麻烦,请各位大侠帮个忙看看,使用rand()函数生成20w个数据,将这些数据存放在
数组中,并将数组存储于文件中;可是,只有几百个数据是正常的整型随机数,其它的都是些乱码数据,请各位大侠指点迷津!多谢,关键代码如下:
srand((unsigned)time(NULL));
for(i=0;i<Max;i++)
a[i] = int(rand()%1000);
...全文
206 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
luty_arsenal 2012-02-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qq120848369 的回复:]

你说读Max个int就读到了?

num返回给你玩的?
[/Quote]

大哥,你没理解意思就不要那么狂吠,问题已经自己解决,是读文件的问题!不明白请多问,不要凡事都觉得自己挺能耐的,大家都要虚心嘛
沭水河畔 2011-11-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 luty_arsenal 的回复:]

20w个数存在数组中已经搞定,新问题是从生成的文件中将这些数再读入到数组中,会出现读取的个数远远小于
20w,使用fread读文件,还麻烦各位大侠指点:
if((num = fread(b,sizeof(int),Max,fp))<Max)/*Max = 20w*/
return 0;
for(i=0;i<Max;i++)
printf("%d ",b[i]);/*数组b会出现乱码*/……
[/Quote]
顶4楼,一次别读这么多,4096啊,8192啊就差不多了。
还有,生成数据的时候,也别一次搞定。分批次嘛。
free2011 2011-11-05
  • 打赏
  • 举报
回复
期待答案。我擦,20w数据。这个程序不知道耗时多长?
绿野耕夫 2011-11-05
  • 打赏
  • 举报
回复
想一口气申请包含20W个元素的数组恐怕不是那么容易的~
qq120848369 2011-11-05
  • 打赏
  • 举报
回复
你说读Max个int就读到了?

num返回给你玩的?
luty_arsenal 2011-11-05
  • 打赏
  • 举报
回复
20w个数存在数组中已经搞定,新问题是从生成的文件中将这些数再读入到数组中,会出现读取的个数远远小于
20w,使用fread读文件,还麻烦各位大侠指点:
if((num = fread(b,sizeof(int),Max,fp))<Max)/*Max = 20w*/
return 0;
for(i=0;i<Max;i++)
printf("%d ",b[i]);/*数组b会出现乱码*/
wangdong20 2011-11-05
  • 打赏
  • 举报
回复
试试这个
srand(time(NULL));                         //产生0~999之间的n个随机数
for(i=0;i<n;i++)
{
A[i]=rand()%1000;
}

也许20w个数据太大了,超出了int i;的范围所以会有乱码
無_1024 2011-11-05
  • 打赏
  • 举报
回复
a[i] = rand()%1000;//这样试一试

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧