C语言程序设计 | 猜数字游戏

本文详细介绍了一款基于C语言的猜数字游戏的实现过程,包括随机数生成、玩家输入处理及反馈机制。通过使用rand()和srand()函数确保随机数的不确定性,结合循环结构和条件判断提供游戏体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

游戏内容:随机生成一个1~100的数字,让玩家猜测,当玩家猜错的时候提示是大了还是小了。
首先我们先对内容进行分析。
1.我们需要随机生成一个范围在1-100的数据供玩家猜测
于是我们可以想到用rand()函数来实习
ret = rand() % 100 +1;
但是如果多次实验,会发现每次给的随机数在重新运行程序后都是一样的,这样的随机是重复的,达不到游玩的效果,所以我们需要引入一个srand()函数作为设置器。
srand((int)time(NULL));
同时我们需要在开头引入这两个函数的头文件

#include<stdlib.h>
#include<time.h>

2.构造一个循环
既然是猜数字游戏,当然不会让玩家只输入一次数据,所以我们需要一个循环来让玩家多次输入。同时,还需要给与玩家提示,减少玩家失误次数。

	while(1)
	{
		printf("请输入您猜的数字\n"); 
		scanf("%d",&guess);
		
		if( ret < guess)
		{
			printf("您猜的数字偏大\n"); 
		}
		else if( ret > guess)
		{
			printf("您猜的数字偏小\n"); 
		} 
		else
		{
			printf("恭喜您猜对了\n");
			break; 
		} 
	} 

我们需要一个菜单,来让玩家选择进入游戏还是退出游戏,很容易的就可以想到用switch()函数,同时可以在将其放在一个循环中,让玩家多次输入,因为这个循环至少运行一次,所以我们可以用 do while()循环来实现

	do
	{
		menu();
		printf("请输入您的选择:\n");
		scanf("%d",&n);
		
		switch(n)
		{
			case 1:	
				game();
				break;
			case 0: 
				printf("结束游戏\n");
				break;
			default:
				printf("输入错误,请重新输入\n"); 
				break; 
		} 
		
	} while (n);

在这里插入图片描述
完整代码

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

void menu()
{
	printf("*****************************************\n") ;
	printf("*********      1.开始游戏       *********\n") ;
	printf("*********      0.结束游戏       *********\n") ;
	printf("*****************************************\n") ;
}
void game()
{
	int ret,guess; 
	ret = rand() % 100 +1;
	
	while(1)
	{
		printf("请输入您猜的数字\n"); 
		scanf("%d",&guess);
		
		if( ret < guess)
		{
			printf("您猜的数字偏大\n"); 
		}
		else if( ret > guess)
		{
			printf("您猜的数字偏小\n"); 
		} 
		else
		{
			printf("恭喜您猜对了\n");
			break; 
		} 
	} 
} 
int main()
{ 
	int n;
	srand((int)time(NULL)); 

	do
	{
		menu();
		printf("请输入您的选择:\n");
		scanf("%d",&n);
		
		switch(n)
		{
			case 1:	
				game();
				break;
			case 0: 
				printf("结束游戏\n");
				break;
			default:
				printf("输入错误,请重新输入\n"); 
				break; 
		} 
		
	} while (n);
	
	return 0;
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌桓丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值