1. 获取随机数
调用 #include <stdlib.h>,可以利用 rand() 在 [0,0x7fff] 直接获取一个随机数。但问题是,随机数不会发生变化,即多次运行程序,获取的随机数相同。原因在于随机种子没有发生变化。若要获取真正的随机数,需要利用时间和 srand 函数。srand(time(NULL));
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void TestRandomNumber(){
// 获取的随机数,多次运行程序不会发生变化
int i = 0;
while(i<3){
int random_number = rand();
printf("random_number: %d\n", random_number); // 41, 18467, 6334
i++;
}
// 随机种子发生变化
srand(time(NULL));
int random_number = rand();
printf("revised random_number: %d", random_number); // 21959
}
2. 猜数字
srand(time(NULL)) 的试验,https://blog.csdn.net/gltzlike/article/details/115029554?spm=1001.2014.3001.5501
void GuessNumber(){
srand(time(NULL));
int user_input;
int random_number = rand();
printf("实际数字为: %d\n", random_number);
while(1){
printf("请输入猜的数字:\n");
scanf("%d", &user_input);
if(user_input < random_number){
printf("小了!\n");
}else if(user_input > random_number){
printf("大了\n");
}else{
printf("你猜对了!\n");
break;
}
}
}