猜数字(C语言)附源代码

二话不说,先为需要的同学们拿上源代码

#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]是时间戳要形成的一个随机数

大家可以更详细的看看这位大佬对这一行代码的解释,个人感觉写的很好也巨详细

https://blog.csdn.net/Supertcat/article/details/128254774?ops_request_misc=&request_id=&biz_id=102&utm_term=srand((unsigned%20int)time(NULL)&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-5-128254774.142^v96^pc_search_result_base3&spm=1018.2226.3001.4187

大概的解释就是这些,一开始做一个进入或者退出的页面,在main函数中用switch来确定进不进去

然后的话生成随机数,需要我们来用到rand和srand,这个的话大家如果想深入了解的话可以具体去查查,但一般用的不会很多很深

最后就是这个游戏的主核心,反而这一片是最简单的,随机生成的ret,用scanf输入进来,再用if结构判断是猜大了,猜小了或者猜对了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值