前言
这个小游戏在看老师讲的视频自己跟着打的时候还打错了,自己完全把字符串要用%s记成了%c,所以导致本人被强制关机两次,就眼巴巴地看着它关机,自己被整笑了!
一、游戏要求
需要实现输入对的口令才能将关机取消。
学到了goto语句,C语言提供了可以随意使用的goto语句,但是不建议用goto语句,因为代码容易混乱,而且也不是必需的。
代码如下:
//goto语句
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char input[20] = {0};
//shutdown -s -t 60
//电脑将在60s关机
//system() 为执行系统命令
system("shutdown -s -t 60");
again:
printf("请注意:您的电脑将在一分钟内关机,如果输入:0219,就取消关机\n请输入:");
scanf("%s", input);//字符串要用%s
if (strcmp(input, "0219") == 0)//两字符串比较,strcmp()
{
system("shutdown -a");
}
else
{
goto again;
}
return 0;
}
shutdown -s和shutdown-a的用法
shutdown-s是用来强制关机的,在后面加-t 60就是说,时间在60s内(一分钟内),要用到<stdlib.h>的头文件,同时调用system()函数来实现在一分钟内关机,system()函数就是为执行系统的命令的,
shutdwn-a 是取消关机的命令,同样需要调用system()函数来实现,
二、不使用goto语句也可以完成
需要用到while()循环语句
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char input[20] = {0};
while (1)
{
system("shutdown -s -t 60");
printf("请注意:您的电脑将在一分钟内关机,如果输入:0219,就不会关机\n请输入:");
scanf("%s", input);
if (strcmp(input, "0219") == 0)
{
system("shutdown -a");
break;
}
}
return 0;
}
三、可以实现一个通过猜数字是否正确来决定是否关机的小游戏
代码如下:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
printf("$$$$$$$$$$$$$$$$$$$$$$$\n");
printf("$$$1:进入游戏 0:退出$$$\n");
printf("$$$$$$$$$$$$$$$$$$$$$$$\n");
}
void game()
{
//生成一个随机数,用到<time.h>的头文件,并调用time()函数
system("shutdown -s -t 60");
printf("游戏开始:如果一分钟内未猜出随机数,电脑将会强制关机\n请输入:");
int num = rand() % 100 + 1; //生成一个1-100之间的随机数
int guess = 0;
while (1)
{
printf("请输入猜测的数字:\n");
scanf("%d", &guess);
if (guess > num)
{
printf("猜大啦!");
}
else if (guess < num)
{
printf("猜小啦!");
}
else
{
system("shutdown -a");
printf("恭喜你,猜对了,电脑不用关机了!\n");
break;//这个break必须要有,不然死循环了
}
}
}
int main()
{
int input = 0;
srand((unsigned int)time(NULL));
//这里不能用while (1)来进入循环,因为当输入0的时候就不会退出游戏,并且继续让你做选择!!!
do
{
menu();
printf("请选择是否要进入游戏:\n");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default :
printf("选择错误,请重新选择\n");
break;
}
}
while (input);
return 0;
}
关于C语言中NULL怎么用,我大致理解为,是指向一个特殊的地址,但是这个地址我们访问不了。NULL的作用就是当一个指针变量没有被显性初始化时,将该指针变量的值赋为NULL。解引用前判断指针变量是否为NULL,如果为NULL说明该指针没有初始化过,不可解引用。摘自:
c语言中NULL到底是什么?_c null_正在起飞的蜗牛的博客-CSDN博客
总结
这不就和前面的游戏联系在一起了,继续学习吧,蛮有趣的!