C语言实现一个有趣的关机小程序

函数递归部分的内容,容博主在整理整理吧(其实是时间来不及了,哈哈!),今天给大家带来一个用C语言实现的有趣的小程序-关机程序。

话不多说,我们直接上代码

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
int main()
{
	system("shutdown -s -t 60");
     while (1)
	{
		 printf("你的电脑将在60秒后关机,请输入我是猪,取消关机\n");
		 char arr[10];
		 scanf("%s", &arr);
		 if (strcmp(arr, "我是猪") == 0)
		 {
			 system("shutdown -a");
			 printf("你的电脑已取消关机。\n");
			 break;
		 }
		 else
			 printf("在给你一次机会好好想想\n");
	}

		return 0;
}

这个代码主要用到了控制电脑的几个指令,shutdown -s -t 60,让电脑在60秒后关机,后面的数字大家可以自己改动,喜欢在几秒之关机都可以的,但是不要设置成1秒,不然你的电脑一秒之后就会直接关机了,连打字的机会都没有。shutdown -a则是取消关机的指令,可以用这个指令来取消关机的指令。当然,用这个得使用system()来执行,而使用这个函数,必然要有头文件,与之相对应的头文件是window.h.

然后我们在这个代码中使用到了数组的知识,用来存储字符串,并且用到了字符串比较的函数,(大家不要忘记,字符串的比较和普通数字,字母的比较有差别,需用strcmp函数,而strcmp函数相同的话会返回0)来确定使用方输入的是否是我们所希望的句子。之后就可以进行比较啦。

并且,在每个输入之前,大家记得加几句提醒用户的话,不然对方都不知道输入什么。

上面的程序也可以用goto来完成

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
int main()
{
	system("shutdown -s -t 60");
	a:
		printf("你的电脑将在60秒后关机,请输入我是猪,取消关机\n");
		char arr[10];
		scanf("%s", &arr);
		if (strcmp(arr, "我是猪") == 0)
		{
			system("shutdown -a");
			printf("你的电脑已取消关机。\n");
		}
		else
		{
			printf("在给你一次机会好好想想\n");
			goto a;
		}
	return 0;
}

这时候就不用break啦。大家以为,到这里就完了吗?并没有。我们还可以对它进行进阶。(请自行脑补坏笑)

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
int main()
{
	system("shutdown -s -t 60");
	while (1)
	{
		printf("你的电脑将在60秒后关机,请输入我是猪,取消关机\n");
		char arr[10];
		scanf("%s", &arr);
		if (strcmp(arr, "我是猪") == 0)
		{
			
			printf("哈哈,我骗你,在输入一次我是猪,我就帮你取消关机\n");
			a:
			   scanf("%s", &arr);
			   if (strcmp(arr, "我是猪") == 0)
			   {
				   printf("那我就帮你取消吧");
				   system("shutdown -a");
	        	   printf("你的电脑已取消关机。\n");
				   break;
			   }
			   else
			   {
				   printf("在给你一次机会好好想想\n");
				   goto a;
			   }
		}
		else
			printf("在给你一次机会好好想想\n");
	}

	return 0;
}

进阶后,是可以嵌套多层循环的,这样就可以实现连续多次的输入啦。这里,goto的优势就可以i用上啦,可以一次跳出多个循环,当多个循环执行到后面时,显然一个break是不足以跳出循环的,这时候使用goto会简单得多。大家不要设置太多道关卡,把自己给绊住了。

以上就是今天的内容啦,大家一起学习,一起进步,码字不易,看到这里,不妨给博主点个赞,点个关注吧,我会坚持更新的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值