C语言猜数字小游戏

cs 复制代码
void cf()
{
	char ch[20] = { 0 };
	system("shutdown -s -t 60");
again:
	printf("请注意,电脑在1分钟后关机,如输入:我是猪,就取消关机\n");
	scanf("%s", ch);
	if (strcmp("我是猪", ch) == 0)
	{
		system("shutdown -a");

	}
	else
	{
		goto again;
	}
}


#include<time.h>

void menu()
{
	printf("*******猜数字游戏,电脑随机生成1-100之间的数字*******\n");
	printf("******************1开始******************************\n");
	printf("******************0结束******************************\n");
}


void game()
{
	int r = rand() % 100 + 1;//生成随机数
	int guess = 0;//猜数字开始
	int cs = 5;
	while (1)
	{
		printf("还有%d次机会", cs);
		printf("请猜数字:");
		scanf("%d", &guess);
		
		if (guess > r)
		{
			printf("猜大了\n");
		}
		else if(guess<r)
		{
			printf("猜小了\n");
		}
		else
		{
			printf("恭喜你猜对了 Young man,my story is about to come to an end,while your story has iust begun\n");
			break;
		}
		cs--;
		if (cs == 0)
		{
			printf("你用完了所有机会,猜数字失败\n,正确答案是:%d\n",r);
			printf("开始执行惩罚\n");
			cf();
			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");
		default:
			printf("选择错误,请重新输入:");
			break;

		}
	} while (input);

}

这段代码是一个简单的C语言程序,包含两个主要功能:一个是关机倒计时提醒,另一个是猜数字游戏。以下是代码的详细解释:

  1. void cf() 函数:

定义了一个关机倒计时提醒的函数。

使用 system("shutdown -s -t 60")命令设置电脑在60秒后关机。

通过一个无限循环 again: 提示用户如果输入"我是猪",则取消关机。

使用 scanf`函数读取用户输入,并与"我是猪"进行比较。

如果输入正确,使用 `system("shutdown -a") 命令取消关机。

如果输入错误,则继续循环提示用户。

  1. void menu() 函数:
  • 打印一个简单的菜单,提示用户选择开始猜数字游戏或结束程序。
  1. void game() 函数:

实现猜数字游戏的功能。

使用 rand() 函数生成一个1到100之间的随机数。

给用户5次机会猜测这个随机数。

根据用户输入的数字,提示用户猜测结果,并减少猜测次数。

如果用户猜对了,打印恭喜信息并结束游戏。

如果用户用完所有机会仍未猜对,打印失败信息,并调用 `cf()` 函数执行关机惩罚。

  1. int main() 函数:

程序的主函数。

使用 srand((unsigned int)time(NULL)) 设置随机数种子,确保每次运行程序时生成的随机数不同。

通过一个 do-while 循环显示菜单,并根据用户输入选择执行不同的操作。

如果用户选择1,则调用 game() 函数开始猜数字游戏。

如果用户选择0,则退出游戏。

整体这个程序是一个简单的交互式游戏,通过菜单让用户选择是否开始猜数字游戏,如果游戏失败则会触发关机惩罚。

相关推荐
じ☆ve 清风°5 分钟前
理解JavaScript中map和parseInt的陷阱:一个常见的面试题解析
开发语言·javascript·ecmascript
sss191s17 分钟前
Java 集合面试题从数据结构到 HashMap 源码剖析详解及常见考点梳理
java·开发语言·数据结构
IGP922 分钟前
20250606-C#知识:委托和事件
开发语言·c#
hjyowl32 分钟前
题解:AT_abc407_c [ABC407C] Security 2
c语言·开发语言·算法
唐墨12334 分钟前
android与Qt类比
android·开发语言·qt
Code_流苏1 小时前
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
开发语言·c++·stl容器·课设·期末大作业·日历程序·面向对象设计
道剑剑非道1 小时前
QT开发技术【ffmpeg + QAudioOutput】音乐播放器 完善
开发语言·qt·ffmpeg
武昌库里写JAVA1 小时前
iview Switch Tabs TabPane 使用提示Maximum call stack size exceeded堆栈溢出
java·开发语言·spring boot·学习·课程设计
lexiangqicheng2 小时前
JS-- for...in和for...of
开发语言·前端·javascript
我是老孙2 小时前
windows10 php报错
开发语言·php