c语言:实现一个猜数字游戏

当学完循环(for while dowhile)和分支(if switch)后,我们就可以实现一个简单的猜数字游戏了

游戏规则:程序产生一个伪随机数(在这里我们让它产生的随机数在1~100之间),参与者从键盘输入一个数,程序将该数与随机数对比,反馈二者的大小关系给参与者,若没有猜对,参与者继续输入数字,程序继续给出反馈,最多猜五次

代码实现如下:



#include<stdio.h>
#include<stdlib.h>//srand rand 的头文件
#include<time.h>//time 的头文件


void menu()
{
	printf("******************\n");
	printf("*****请选择:<*****\n");
	printf("*****1. play******\n");
	printf("*****0. exit******\n");
	printf("******************\n");

}


void game()
{
	srand((unsigned int)time(NULL));//利用时间戳来无时无刻地改变生成随机数的“种子”
	int ret = rand()%100+1;//ret来存放生成的随机数:1~100
	int count = 5;//记录剩余机会
	int guess= 0;//存放输入的数
	while (count)
	{
		printf("剩余机会:%d次\n", count);
		printf("请输入您心目中的数字:");
		scanf("%d",&guess);
		if (guess < ret)
		{
			printf("猜小了\n");
			printf("\n");
			printf("\n");
			printf("\n");
		}
		else if (guess > ret)
		{
			printf("猜大了\n");
			printf("\n");
			printf("\n");
			printf("\n");
		}
		else
		{
			printf("猜对了!\n");
			printf("要猜的数字是:%d\n", ret);
			printf("\n");
			printf("\n");
			printf("\n");
			break;
		}
		count--;
	}
	if (count == 0)
	{
		printf("很遗憾,五次机会用完,游戏失败。要猜的数字是:%d\n", ret);
		printf("\n");
		printf("\n");
		printf("\n");
	}
}


int main()
{
	int input=0;//此参数为参与者输入的数
	do
	{
		menu();//首先打印菜单,供参与者选择是否进行游戏
		scanf("%d", &input);
		switch (input)
		{
		case 1:
			printf("欢迎进入游戏\n");
			printf("\n");
			printf("\n");
			printf("\n");
			game();//进行游戏
			break;
		case 0:
			printf("已退出游戏\n");
			break;
		default:
			printf("选择错误,请重新选择\n");//输入的数可能非0非1
			printf("\n");
			printf("\n");
			printf("\n");
		}
	} while (input); //循环继续的条件是input为真。当输入1时,进入游戏,一轮游戏结束后,跳出了 
                     //switch,再次进入while选择是否继续下一局;当输入0时,直接退出,不再做任 
                     //何操作;当输入其他数时,因输入不正确,再次进入循环选择是否参与游戏
		return 0;
}

运行结果如下:

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值