当前位置:编程学习 > C/C++ >>

C语言问题 欢迎高手进入

C语言中的随机数问题,谁能告诉我下C语言的随机数是怎么产生的?比如要产生0到30之间的数?而且每次运行的结果不能一样?具体点
追问:能举个简单的例子吗?比如:猴子选大王,一群猴子要选出个大王来,他们之间手中个拿着一个随机产生的密码,然后围成一圈随机产生一个开始,然后开始的猴子报自己手中的密码,从下一个猴子开始数,谁数到报的数谁出列,然后报他手中的密码,一直到最后一个猴子,最后一个猴子就为大王,请问这样的程序怎么编?主要解释随机数部分?

答案:首先用头文件#include <ctime> 与 #include <stdlib.h>

使用srand( (unsigned int) time(0) );获取当前系统时间作为随机种子,如果不使用这个的话,默认种子是1,那么每次产生的随机数都是一样的。但如果使用系统时间就不会产生相同的数,因为时间在变,每次做为随机种子的数都是不同的。

最后用rand()产生随机数。

要产生0到30之间的数 可以是:a=rand()%31;那么a的值就是介于0到30之间。

要产生0到29之间的数 可以是:a=rand()%30;那么a的值就是介于0到30之间。

要产生1到30之间的数 可以是:a=1+rand()%30;那么a的值就是介于1到30之间。

用rand函数可以产生小于32767的随机数,如果需要的随机数范围超过了32767,可以用rand()*rand()来产生,举例如下:
产生0~32767范围内的随机数:int num = rand();
产生0-20范围内的随机数:int num = rand()%20;
产生0~10000000范围内的随机数:int num = rand()*rand()%10000000;
注:需要包含头文件<stdlib.h>

上一个:C语言 结构体的排序问题
下一个:计算机C语言怎么才能学好?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,