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

[复制链接]
1893|6
 楼主| szn1423 发表于 2014-10-9 11:14 | 显示全部楼层 |阅读模式
程序里需要好几个范围的随机数,比如3到6,1到3,4到6等,有没有个简单的方法可以搞定呢?谢谢,给个思路也行
lxyppc 发表于 2014-10-9 12:02 来自手机 | 显示全部楼层
楼主玩**么
fe07fe 发表于 2014-10-9 14:04 来自手机 | 显示全部楼层
随机0到3再加3不就是3到6了
老鱼探戈 发表于 2014-10-9 18:00 | 显示全部楼层
软件做出来的随机数只能是伪随机数,不过也可以用。 关联越多越具有随机性。
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()%....+.... 程序中多写几个即可改变。
花戒 发表于 2014-10-11 13:33 来自手机 | 显示全部楼层
在while(1)里加
rand++;//全局变量
反正这句话不会耗多少时间,每个子函数里加1~3个,
然后用的时候
randNum=rand &0X03;//只要最低三位
randNum +=3;

这样就差不多了。只要不过分追究,谁也不懂rand到底什么时候会自加到清零。
woshixinshou 发表于 2014-10-12 15:50 来自手机 | 显示全部楼层
一般程序用到定时器,读计数器低字节的低2位也可
您需要登录后才可以回帖 登录 | 注册

本版积分规则

251

主题

462

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部