十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
C语言随机函数主要用于实现一组随机数的生成。
创新互联致力于网站建设,网站制作设计,营销网页按需开发网站,成都外贸网站建设公司,企业网站建设,微信小程序开发,网站SEO优化,网站设计制作案例丰富,是成都做网站公司和建站公司,欢迎咨询。
代码示例如下:
#includestdio.h
#includestdlib.h
int main ()
{
int a;
a=rand()%4;
printf("%d\n",a);
return 0;
}
C预先生成一组随机数,每次调用随机函数时从指针所指向的位置开始取值,因此使用rand()重复运行程序产生的随机数都是相同的,可以通过srand()函数来改变指针位置。
扩展资料:
C语言随机函数指针位置
void srand( unsigned int seed )
改变随机数表的指针位置(用seed变量控制)。一般配合time(NULL)使用,因为时间每时每刻都在改变,产生的seed值都不同。
基于毫秒级随机数产生方法:
#includewindows.h
种子设为:srand(unsigned int seed);
srand(GetTickCount());
参考资料:百度百科-C语言随机函数
你在函数里面生成的随机数种子,而计算机运行速度又很快,时间几乎没差别,种子完全一样,生成的随机数当然一样。
改成下面样子就OK了:
void main()
{
int i1,i2,i3,i;
srand (time(NULL));//加到这个位置
i2=suiji();
printf("%d",i2);
i1=suiji();
printf("%d",i1);
}
int suiji()
{
int a;
int t=1,d=18;
//srand (time(NULL));
a=rand()%(d-t)+t;
return a;
}
其实只要做一次种,然后再调用rand()就能产生不同的结果了,不用每次调用rand()之前都用srand()做种的
也就是说你那个程序可以改为
srand(time(0));
for(a=0; a200; a++)
{ /* Two adjacent values of random numbers must be different */
R=rand()/(RAND_MAX+1.0);
b=int(R*num) + 1;
}
如何运用time函数和srand函数生成随机数
#include stdio.h
#include stdlib.h//srand()、rand()
#include time.h//time();
#define N 50
int main()
{
int n;
srand((unsigned)time(NULL));//设置随机数种子
while (1)
{
n = (rand() % 10) + 1 ;//产生1~10的随机数
//rand()产生的是一个很大的数,对其求余就可以达到限定范围的目的
printf("%d ", n);
}
return 0;
}