如何调用c中的随机数生成器,在调用函数时给出不同的数字.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
printf("%i",num());
printf("%i",num());
}
int num() {
int MAX = 100;
srand ( time(NULL));
int num = rand() % MAX;
return num;
}
Run Code Online (Sandbox Code Playgroud)
无论我调用num函数多少次,它总是打印相同的数字.我如何解决这个问题,因此每次通话的号码都不同.
该time函数通常以秒的分辨率返回时间,这意味着如果您time(NULL)在一秒钟内调用两次,那么您将得到相同的结果.
这当然意味着您将相同的起始种子设置为随机数生成器,这意味着序列将是相同的.
您通常只在函数的早期调用srand 一次main.