C语言问题,怎样利用系统时间作为随机数的种子?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言问题,怎样利用系统时间作为随机数的种子?相关的知识,希望对你有一定的参考价值。
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main()
int magic, guess,counter;
srand(time());
magic=rand()%100;
guess=magic-1;
counter=0;
while (guess!=magic)
printf("Guess the magic number:");
scanf("%d", &guess);
counter++;
if (guess!=magic)
printf("***Wrong***Too High\n!");
else if (guess!=magic)
printf("***Wrong***Too Low!\n");
printf("***Bingo***\n");
printf("Guess counter is %d\n", counter);
运行后就出现error C2198: 'time' : too few actual parameters这个问题。
C语言中,设置随机数种子需要包含头文件stdlib.h,利用系统时间需要包含头文件time.h。
设置随机数种子的函数原型为:void srand(unsigned int seed);
利用系统时间作为随机数的种子代码如下:
#include <stdlib.h>#include <time.h>
int main()
srand((unsigned)time(NULL)); // 利用系统时间作为随机数的种子
return 0;
参考技术A c语言
毫秒级
sleep();
功
能:
执行挂起一段时间
原型:sleep(unisgned
long);
clock();
功能:开启这个程序进程”到“程序中调用clock()函数”时之间的cpu时钟计时单元
数组范围扩大到10个元素,下标也扩大到0~9,更便于观察
#include
#include
#include
#include
int
main()
int
num[10],
i;
//种子
srand(clock());
//给数组随即赋值
for(i
=
0;i
<
10;i++)
num[i]
=
rand()
%
100;
printf("%d
",num[i]);
printf("\n");
//随即输出数组元素
for(i
=
0;i
<
20;i++)
sleep(5);
srand(clock());
printf("%d
",num[rand()
%10]);
return
0;
参考技术B srand(time());
应改为
srand(time(NULL));本回答被提问者采纳
C语言中 random() 函数怎么用?
C语言中 random() 函数怎么用?
srand(int)用来设种子,然后每次rand()返回一个随机值种子最好是每次都不同的,否则你每次得到的都是同样的一系列伪随机数,通常让种子和当前时间相关,比如
srand((unsigned)time(0)); 参考技术A 一楼,c里面哪里来的randomize和random????
c里面初始化随机种子是srand(int),然后rand()是返回一个随机值,范围是0--32767 参考技术B random()
这个函数在VC下面是用不了的,必须在Turbo上面才可使用,你只能使用rand函数了。 参考技术C 先在
srand丢入种子,在使用random去得到随机数,如果想得到0~100z之间的,可以random()%100 参考技术D random,C语言里意为随机数发生器。用法:
int
random(int
num);
例子:
#include
<stdlib.h>
int
main(void);
randomize();
printf("number:%d\n",random(100));/*意为取0~99之间的数字并输出*/
return
0;
以上是关于C语言问题,怎样利用系统时间作为随机数的种子?的主要内容,如果未能解决你的问题,请参考以下文章
用C语言如何实现多线程同时运行的情况下,各个线程输出不同的随机数?