打印

求个C语言的随机数程序,随机数范围3到6

[复制链接]
1649|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
szn1423|  楼主 | 2014-10-9 11:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
lxyppc| | 2014-10-9 12:02 | 只看该作者
楼主玩**么

使用特权

评论回复
板凳
fe07fe| | 2014-10-9 14:04 | 只看该作者
随机0到3再加3不就是3到6了

使用特权

评论回复
地板
老鱼探戈| | 2014-10-9 18:00 | 只看该作者
软件做出来的随机数只能是伪随机数,不过也可以用。 关联越多越具有随机性。

使用特权

评论回复
5
790953623| | 2014-10-9 19:08 | 只看该作者
本帖最后由 790953623 于 2014-10-9 19:17 编辑

用rand()%4+3,可以得到随机数,但是伪随机数(每次执行程序得到的数一样)
可以利用srand()函数,通过给不同值使得rand()产生可变的随机数
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
void main()
{
   srand(time(NULL));
   printf("%d",rand()%4+3);
}
time()用于计算某一时间点到现在的秒数,由于时间在变所以time()返回值必然不同,执行srand()函数会影响rand()函数,这样每次执行程序得到的数就是随机的。这是在一本C语言的畅销书上看到的方法。。
至于不同范围,rand()%....+.... 程序中多写几个即可改变。

使用特权

评论回复
6
花戒| | 2014-10-11 13:33 | 只看该作者
在while(1)里加
rand++;//全局变量
反正这句话不会耗多少时间,每个子函数里加1~3个,
然后用的时候
randNum=rand &0X03;//只要最低三位
randNum +=3;

这样就差不多了。只要不过分追究,谁也不懂rand到底什么时候会自加到清零。

使用特权

评论回复
7
woshixinshou| | 2014-10-12 15:50 | 只看该作者
一般程序用到定时器,读计数器低字节的低2位也可

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

251

主题

462

帖子

4

粉丝