rand()函数返回一个在0到RAND_MAX范围内的伪随机整数。在调用rand()函数之前,使用
srand()函数来初始化伪随机数生成器的种子。
srand((unsigned int)time(NULL)); // 设置随机数的起始值为强制转换成整型的时间戳 设置起始值必须在调用随机数之前
time()函数的使用需要引用time.h头文件
下面写一个猜数字的小游戏,这些知识点就都能运用到了。
/ 写一个猜数字游戏
/ 1、自动产生一个1-100之间的随机数
/ 2、 猜数字
a.猜对了,就恭喜你,游戏结束。
b.你猜错了,会告诉你猜大了,还是猜小了,直到猜对
3、游戏一直玩,除非退出游戏。
/ 写一个猜数字游戏
/ 1、自动产生一个1-100之间的随机数
/ 2、 猜数字
a.猜对了,就恭喜你,游戏结束。
b.你猜错了,会告诉你猜大了,还是猜小了,直到猜对
3、游戏一直玩,除非退出游戏。
#include"stdio.h"
#include"stdlib.h"
#include"time.h"
int input = 0;
void menu() {
printf("****************************************\n");
printf("************* 1. 开始 **************\n");
printf("************* 0. 退出 **************\n");
printf("****************************************\n");
}
void cai(c, r) {
if (c > r) {
printf("你猜大了?\n");
}
else if (c < r) {
printf("你猜小了?\n");
}
else {
printf("恭喜你!猜对了!\n");
input = 0;
}
}
// 猜数字游戏的实现
void game() {
//1、生成一个随机数
int r = rand()%100 + 1; // rand()的结果是个5位数,所以除以100取余 就能得到 0-99 加1后就是一个 1-100的数了。
// 任何一个数模100都能得到一个1-99的数
int c = 0;
do{
//2、猜数字进行判断
printf("请猜我心里想的数字是多少吧?\n");
scanf("%d", &c);
cai(c, r);
} while (c != r);
}
int main() {
srand((unsigned int)time(NULL)); // 设置随机数的起始值为强制转换成整型的时间戳 设置起始值必须在调用随机数之前
do {
menu();
printf("请输入你的选择:");
scanf("%d", &input);
switch (input) {
case 1:{
//printf("开始玩游戏!\n");
game();
break;
}
case 0:{
printf("退出游戏!\n");
break;
}
default: {
printf("选择错误\n");
break;
}
}
} while (input);
return 0;
}