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这个问题。
2026年09月23日 20:41
有3个网友回答
网友(1):

C语言中,设置随机数种子需要包含头文件stdlib.h,利用系统时间需要包含头文件time.h。

设置随机数种子的函数原型为:void srand(unsigned int seed);

利用系统时间作为随机数的种子代码如下:

#include 
#include 

int main(){
    srand((unsigned)time(NULL)); // 利用系统时间作为随机数的种子
    return 0;
}

网友(2):

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;
}

网友(3):

srand(time());

应改为

srand(time(NULL));