| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 687 人关注过本帖
标题:请教rand函数问题
只看楼主 加入收藏
sr5811068
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-8-3
结帖率:0
收藏
已结贴  问题点数:20 回复次数:7 
请教rand函数问题
不是用了头文件#include "stdlib.h"之后就能在语句里面用rand(n)来表示用0-n之间的随机数吗?
为什么执行后仍然是输出的0-32767之间的数?

我要编的程序是定义一个含有15个元素的数组,并编写数组分别完成以下操作:
1.调用C库函数中的随机函数给所有元素赋以0-50之间的随机数;
2.输出数组元素的值;
3.按顺序对每隔三个数求一个和数,并传回主函数;
4.最后输出所有求出的和值。

我自己编的程序是这样的

#include "stdlib.h"
#include "stdio.h"
getrand(int *a,int n)
{int i;
 int rand(void);
 for(i=0;i<n;i++)
     a[i]=rand(50);
}
arrout(int *a,int n)
{int i;
 for(i=0;i<n;i++)
     printf("%d \n",a[i]);
}
getsum(int *a,int *b,int n)
{int i,j,sum;
 for(i=0,j=0,sum=0;i<n;i++)
 {sum+=a[i];
  if((i+1)%3==0)
  {b[j]=sum;
   sum=0;
   j++;
  }
 }
}
main()
{int a[15],w[5]={0};
 getrand(a,15);
 arrout(a,15);
 getsum(a,w,15);
 arrout(w,5);
}



请大神帮帮忙
搜索更多相关主题的帖子: include 元素 
2013-08-03 16:23
pkwangxinjun
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:45
专家分:170
注 册:2010-8-29
收藏
得分:4 
"用rand(n)来表示用0-n之间的随机数吗"这句话应该是没有依据的,如果想产生0-n之间的随机数应该是n*rand()/32767,当然如果真的像随机的话还有提供随机种子;参照srand();MSDN上有例子
2013-08-03 19:25
小武哥253
Rank: 2
等 级:论坛游民
帖 子:14
专家分:10
注 册:2013-7-27
收藏
得分:4 
感觉j没有循环,而且未最后输出所有求出的和值
2013-08-03 19:41
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:4 
以下是引用pkwangxinjun在2013-8-3 19:25:34的发言:

"用rand(n)来表示用0-n之间的随机数吗"这句话应该是没有依据的,如果想产生0-n之间的随机数应该是n*rand()/32767,当然如果真的像随机的话还有提供随机种子;参照srand();MSDN上有例子

+1

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-08-03 19:44
小武哥253
Rank: 2
等 级:论坛游民
帖 子:14
专家分:10
注 册:2013-7-27
收藏
得分:0 
而且调用函数还没有将数值返回到主函数
2013-08-03 19:45
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:4 
学习

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-08-04 18:29
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
取模

DO IT YOURSELF !
2013-08-04 22:16
艺术的生活
Rank: 2
等 级:论坛游民
帖 子:51
专家分:77
注 册:2013-7-28
收藏
得分:4 
公式rand()%(b-a),是求范围随机数的计算公式,%是做求余运算,
 正整数对n求余的范围肯定是在0~n-1之间,也就是rand()%(b-a)的范围是0~b-a-1,
 然后加上a,也就是范围变成了a~b-1。
而rand()%90+10=rand()%(100-10)+10,自己算算看吧。
2013-08-04 22:43
快速回复:请教rand函数问题
数据加载中...
 
   



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

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