由电脑关机小游戏和猜数字游戏结合而成的最终版本,直接可以运行exe文件试玩
题目:写一个关机小程序:
1.程序运行起来之后就开始60s倒计时关机;
2.但是只要在一分钟内输入“我是猪”就可以取消关机,输入错误则继续执行关机命令。
cmd ——控制台窗口
shutdown -s -t 60 ——60s关机指令
shutdown -a ——停止关机指令
电脑关机小游戏:
1.运用goto语句
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
int main() {
char input[20]; //定义数组为可以输入20个字符
system("shutdown -s -t 60"); //cmd 60s关机指令
while (1)
{
printf("请注意,您的电脑将在60s后关机,如果想取消请输入我是猪:\n");
scanf("%s", input); //input是数组名,就是地址不用加&
if (strcmp(input, "我是猪") == 0) //strcmp函数用来判断字符串是否相等,如果相等输出0,用法strcmp(数组,输入的正确答案)
{
printf("恭喜你输入正确,已取消关机指令\n");
system("shutdown -a"); //cmd取消关机指令
break;
}
else
{
printf("输入错误\n");
//如果输入的与答案不符合,将回到上一步循环重新运行,直至输入正确答案。
}
}
return 0;
}
2.不用goto语句返回,直接采用while循环
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char input[20]; //定义数组为可以输入20个字符
system("shutdown -s -t 60"); //cmd 60s关机指令
while (1)
{
printf("请注意,您的电脑将在60s后关机,如果想取消请输入我是猪:\n");
scanf("%s", input); //input是数组名,就是地址不用加&
if (strcmp(input, "我是猪") == 0) //strcmp函数用来判断字符串是否相等,如果相等输出0,用法strcmp(数组,输入的正确答案)
{
printf("恭喜你输入正确,已取消关机指令\n");
system("shutdown -a"); //cmd取消关机指令
break; //输入正确,退出循环
}
else
{
printf("输入错误\n");
//如果输入的与答案不符合,将回到上一步循环重新运行,直至输入正确答案。
}
}
return 0;
}
猜数字小游戏(有次数限制):
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
void game()
{
int r = rand() % 100 + 1;
int guess = 0;
int count = 5;
while (count)
{
printf("\n你还有%d次机会\n", count);
printf("请猜数字>:");
scanf("%d", &guess);
if (guess < r)
{
printf("猜⼩了\n");
}
else if (guess > r)
{
printf("猜⼤了\n");
}
else
{
printf("恭喜你,猜对了\n");
break;
}
count--;
}
if (count == 0)
{
printf("你失败了,正确值是:%d\n", r);
}
}
void menu()
{
printf("***********************\n");
printf("****** 1. play ******\n");
printf("****** 0. exit ******\n");
printf("***********************\n");
}
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");
break;
default:
printf("选择错误,重新选择\n");
break;
}
} while (input);
return 0;
}
最终整合版本:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
void game() {
int x = rand() % 100 + 1; //生成1——100的随机数字
int guess = 0;
int countused = 0; //用来定义在猜数字时已经使用过的次数
int countremain = 10; //用来定义在猜数字时剩余的次数
while (1) {
printf("请猜数字:");
scanf("%d", &guess);
countused++; //每猜一次,剩余次数-1,使用次数+1
countremain--;
if (guess < x) //判断猜数的大小
{
printf("太小了\n");
}
else if (guess > x)
{
printf("太大了\n");
}
else
{
printf("恭喜你猜对了,关机指令已取消\n");
system("shutdown -a"); //取消系统关机指令
break;
}
printf("仅剩%d次机会,已经猜了%d次\n", countremain, countused);
if ((countused == 10) || (countremain == 0)) //次数上限用完后游戏退出,只能等待关机
{
printf("给你机会你不中用啊\n");
break;
}
}
}
void menu() //打印菜单页面
{
printf("您的电脑将在120s后自动关机,请在有限时间内完成游戏来取消关机\n");
printf("**********欢迎来到猜数字游戏**********\n");
printf("**************************************\n");
printf("******1.play ****** 0.exit*******\n");
printf("**************************************\n");
}
int main()
{
srand((unsigned int)time(NULL)); //种子
system("shutdown -s -t 120"); //系统120s关机命令
int input = 0;
char input2[2];
menu();
back1:
printf("请输入:");
scanf("%d", &input);
switch (input) {
case 0:
printf("您已经放弃了唯一的自救机会,没有后悔路了\n");
break;
case 1:
printf("请稍等,游戏即将开始\n");
back2:
printf("您确定要开始吗,仅有10次机会,(Y or N)\n");
scanf("%s", input2);
if (strcmp(input2, "Y") == 0) //输入的字符与Y相符就会输出0
{
game();
}
else
{
printf("您已经没有时间犹豫了,电脑即将关闭\n");
goto back2; //返回back2再次选择
}
break;
default:
{
printf("输入有误请重新输入\n");
goto back1; //返回back1再次选择
}
break;
}
return 0;
}
C语言实现猜数字与关机结合游戏

1808

被折叠的 条评论
为什么被折叠?



