【C语言】猜数字

本文介绍了如何使用C语言编写一个猜数字游戏。游戏规则是在1到100的范围内设定一个数字,玩家每次猜测后,程序会提示玩家猜的数字是偏大还是偏小,直到猜中为止。代码中利用if、else if和do-while语句控制流程,通过比较猜的数字与目标数字调整猜测范围。作者鼓励读者分析题目,理清思路,根据执行结果优化代码,并欢迎大家留言交流。

【问题】:猜数字游戏

  1. 1-100范围内定出一个数字num让大家来猜

  2. 每猜一次提示比num大还是比num小知道猜中为止

    使用 if、else if 、do-while语句

  • 建立数值的范围,进行游戏时有范围的猜数值
  • 建立数值比较猜数猜大了进行提示,并将猜数置换为最大上限
  • 建立数值比较猜数猜小进行提升思,并将猜数置换为最小上限
  • 使用do-while循环进行数值的比较和猜取

C代码如下,仅供参考,自己可以根据自己的想法进行优化

#include <stdio.h>//猜数字
int main ()
{
	int num =66;//设置要猜的数字
	int guess;
	int max=100,min=1;//猜数字的上下限,初始值为1-100
	do{
		printf("请输入要猜的数字,数字范围是%3d  -  %3d\n",min,max);
		scanf("%d",&guess);//输入要猜的数字
		if(guess>min && guess<max)//首先我们要判断数字是否处于范围之间
		{
			if(guess == num) //判断猜对的情况
			{
				printf("恭喜您猜对了,您真厉害\n\n");
			}
			else if (guess>num)//判断猜大了的情况
			{
				printf("SORRY,您猜的有点大了\n\n");
				max=guess;//猜大了把guess当成最大上限
			}
			else//最终便剩下猜小的情况
			{
				printf("SORRY,您猜的有点小了\n\n");
				min=guess;//猜小了把guess当成最小的下限
			}	
		}
		else//不满足数值的范围
			printf("很抱歉你输入的值不在范围之内,请您重新输入\n\n");
	}while(guess != num);//没有猜中,继续循环
	return 0;
}
  • \n\n代表换2行,不然汉字过于紧凑影响美感

在这里插入图片描述
【建议】如何编写C语言->分析题目,理清思路,结构化的理解,最终执行结果对照代码进行修改完善

欢迎大家留言交流

<think>我们来实现一个简单的猜数字游戏。游戏规则如下: 1. 程序随机生成一个1到100之间的整数。 2. 玩家有10次机会猜测这个数字。 3. 每次玩家输入一个数字,程序会告诉玩家这个数字是大于还是小于目标数字。 4. 如果玩家在10次内猜中,则玩家获胜;否则,游戏失败并公布答案。 我们将使用C语言来实现这个游戏。 步骤: 1. 引入必要的头文件。 2. 使用rand()函数生成随机数,注意需要设置随机种子。 3. 循环10次,每次读取用户的输入,并与目标数字比较。 4. 根据比较结果给出提示。 5. 如果猜中,提前结束循环并宣布胜利;如果循环结束还未猜中,则宣布失败。 注意:rand()函数生成的随机数范围是0到RAND_MAX,我们需要将其限定在1-100之间。 代码实现如下: </think>以下是使用C语言实现的猜数字游戏代码。程序会随机生成一个1-100的数字,玩家有10次机会猜测,每次猜测后会提示太大或太小: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand(time(0)); // 用当前时间初始化随机数种子 int secret = rand() % 100 + 1; // 生成1-100的随机数 int guess, attempts = 0; const int max_attempts = 10; printf("欢迎来到猜数字游戏!\n"); printf("我已经想好了1到100之间的一个数字,你有%d次猜测机会。\n\n", max_attempts); while (attempts < max_attempts) { printf("请输入你的猜测 (还剩%d次机会): ", max_attempts - attempts); scanf("%d", &guess); attempts++; if (guess == secret) { printf("\n恭喜!你在第%d次猜中了数字 %d!\n", attempts, secret); return 0; } else if (guess < secret) { printf("太小了!\n"); } else { printf("太大了!\n"); } } printf("\n很遗憾,你没有猜中。正确答案是:%d\n", secret); return 0; } ``` ### 代码解释: 1. **随机数生成**: - `srand(time(0))` 用系统时间初始化随机数生成器 - `rand() % 100 + 1` 生成1-100范围内的随机整数 2. **游戏循环**: - 玩家最多有10次猜测机会 (`max_attempts`) - 每次循环中使用 `scanf` 读取玩家的输入 - 比较输入值与秘密数字,给出提示 - 猜中时立即结束程序 3. **提示系统**: - 每次提示剩余尝试次数 - 根据玩家输入给出"太大"/"太小"反馈 - 游戏结束显示正确答案 4. **边界处理**: - 输入非数字时会出错(实际项目中需额外验证输入) - 包含防作弊设计(随机种子基于时间)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值