#include
<stdioh>
#include
<timeh>
void
main()
{
int
iNum
=
0;
srand((unsigned)time(0));
iNum
=
rand()
%
100
+
1;
//随机生成一个数,并对100取余,使它小于100(0~99)。再加1(1~100)
printf("%d\n",
iNum);
\\打印出来这个数
return;
}
如果想多生成几个随机数,可以有一个数组存储,并用for循环实现随机生成
int
aiNum[10]
=
{0};
int
iLoop
=
0;
//随机生成10个数
for
(
iLoop
=
0;
iLoop
<
10;
iLoop++
)
{
aiNum[iLoop]
=
rand()
%
100
+
1;
}
1
C语言提供了一些库函数来实现随机数的产生。C语言中有三个通用的随机数发生器,分别为
rand函数,
random函数,
randomize
函数
2
但是rand函数产生的并不是真意正义上的随机数,是一个伪随机数,是根据一个数,称之为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非破坏了系统,为了改变这个种子的值,C提供了srand()函数,它的原形是void
srand(
int
a)。
3
在调用rand函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。一般用for语句来设置种子的个数。
#include<stdioh>
#include<stdlibh>
#include<timeh>
void main()
{ int y,i;
srand((unsigned) time(NULL));
for ( i=0;i<10;i++ ) //下面生成10个随机数并打印
{ y=rand()%99+1; //生成0~99之间的一个随机数+1=1~100之间的随机数
printf("%d\n",y);
}
}
楼主你好!
很高兴回答你的问题!
#include<stdioh>
#include<windowsh>
#include<timeh>
#include<stdlibh>
int main()
{
int num;
srand((unsigned)time(NULL));
num = rand()%100+1;
printf("%d\n",num);
return 0;
}
上面的是参数一个1到100之间的随机数的例子!主要用到rand()函数,它能够随机参数一个0到unsigned int的最大值之间的一个随机数,我们可以通过%控制随机数参数的范围!在使用rand()需要调用srand()种子器,不然你每次得到都是同一个数!具体用法可以去网上查查!
希望我的回答对你有帮助!
望采纳!谢谢!
C语言产生有范围随机数需要random函数。
random即随机数发生器,使用之前需要使用Randomize语句进行随机数种子的初始化。RANDOM产生的是伪随机数或者说是用一种复杂的方法计算得到的序列值,因此每次运算时需要一个不同的种子值。种子值不同,得到的序列值也不同。因此也就是真正的随机数了。这也正是RANDOMIZE随机初始化的作用。
VB里用
NEW
RANDOM()来表示初始化。
功
能:
随机数发生器
用
法:
int
random(int
num);
程序例:
#include
#include
#include
/
prints
a
random
number
in
the
range
0
to
99
/
int
main(void)
{
randomize();
随机数种子被初始化时
printf("Random
number
in
the
0-99
range:
%d\n",
random
(100));
return
0;
}
以上就是关于如何用C语言 写一个随机数生成器的程序全部的内容,包括:如何用C语言 写一个随机数生成器的程序、c语言如何实现随机数字的产生、如何用C语言编写个1到100的随机取数程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)