二话不说,先为需要的同学们拿上源代码
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void menu()
{
printf("************\n");
printf("***1.paly***\n");
printf("***0.exit***\n");
printf("************\n");
}
//0_RAND_MAX(32767)
void game() {
int guess = 0;
//生成随机数
//0-99就是1-100
int ret = rand() % 100 + 1;//生成随机数字的方法
//猜数字
while (1) { //不断进入循环
printf("猜数字:>");
scanf("%d", &guess);
if (guess < ret) {
printf("猜小了\n");
}
else if (guess > ret) {
printf("猜大了\n");
}
else {
printf("猜对了,恭喜你\n");
break;
}
}
}
int main() {
int input = 0;
srand((unsigned int)time(NULL));
do {
menu();
printf("请选择:");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误,请重新选择!\n");
break;
}
} while (input);
}
运行的软件为visual studio22版
运行的结果如图所示
整个一个game()函数是整个猜数字游戏的逻辑
menu()所设计的是一个简陋的开始页面
int ret = rand() % 100 + 1;
1.会用rand先随机生成一个结果,因为rand()%100的范围在0-99之间,但我为了美观直接和简单,我们在原有基础上加了1。如果说你的作业或者说你要的这个结果在是在0-99或者1-100抑或是哪些范围,了解rand函数,在这一行代码更改就可以了。
srand((unsigned int)time(NULL));
第二点,就是在main函数里的这一行代码
这是一个随机数生成器
类似于一个种子,seed相当于一个种子,srand函数根据这个种子seed,设置一个随机起点,而rand函数根据这个随机起点,返回一个随机数【seed ,RAND_MAX】,unsigned int是一个墙强转同时我对这个知,time[NULL]是时间戳要形成的一个随机数
大家可以更详细的看看这位大佬对这一行代码的解释,个人感觉写的很好也巨详细
大概的解释就是这些,一开始做一个进入或者退出的页面,在main函数中用switch来确定进不进去
然后的话生成随机数,需要我们来用到rand和srand,这个的话大家如果想深入了解的话可以具体去查查,但一般用的不会很多很深
最后就是这个游戏的主核心,反而这一片是最简单的,随机生成的ret,用scanf输入进来,再用if结构判断是猜大了,猜小了或者猜对了。