方法一:普通用法
#define _CRT_SECURE_NO_WARNINGS //专门用于vs编辑器的scanf函数的
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
int main()
{
char input[20] = { 0 };
unsigned int time1 = 0;
time1 = (unsigned int)time(NULL);
system("shutdown -s -t 60");//system库函数,用于执行系统命令
while (1)
{
unsigned int time2 = (unsigned int)time(NULL);
printf("计算机将在 %u 秒后关机,如果不想计算机关机,就输入:>我是猪\n", 60 - (time2 - time1));
printf("%d",60-(time2 - time1));
scanf("%s", input);//VS中如果不用第一行代码可以用函数:scanf_s
if (strcmp(input, "我是猪") == 0)//strcmp是字符串比较函数
{
system("shutdown -a");
printf("恭喜你猪,关机程序结束\n");
break;
}
printf("输入错误,拜拜\n");
}
return 0;
}
方法二:猜数字关机
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 显示菜单
void menu()
{
system("shutdown -s -t 600");
printf("*********************************************************\n");
printf("** 请猜数字,如果不想计算机关机,就猜0 - 10 之间的数字 **\n");
printf("********************** 1. play **************************\n");
printf("********************** 0. exit **************************\n");
printf("*********************************************************\n");
}
// 处理猜数字游戏
// 返回值 1 表示猜对了,0 表示猜错
int game()
{
// 生成随机数
int r = rand() % 10 + 1;
// 猜数字
int guess = 0;
int count = 5; // 最多猜5次
while (count)
{
printf("你还有%d次机会\n", count);
printf("请猜数字:>");
if (scanf("%d", &guess) != 1)
{
printf("输入无效,请输入一个整数!\n");
while (getchar() != '\n'); // 清空输入缓存
continue;
}
if (guess < r)
printf("猜小了\n");
else if (guess > r)
printf("猜大了\n");
else {
printf("恭喜你猜对了,不用关机了,随机数是: %d\n", r);
system("shutdown -a"); // 取消关机
return 1; // 猜对了,返回1
}
count--;
}
if (count == 0)
{
printf("机会使用完了,抱歉电脑于60秒后关机,正确的数字是: %d\n", r);
system("shutdown -s -t 60");
}
return 0; // 猜错了,返回0
}
// 主函数
int main()
{
int input = 0;
srand((unsigned int)time(NULL)); // 初始化随机数种子
int game_result = 0; // 用于保存猜数字的结果
do
{
// 打印简易菜单
menu();
printf("请选择:>");
if (scanf("%d", &input) != 1)
{
printf("输入无效,请输入一个数字!\n");
while (getchar() != '\n'); // 清空输入缓存
continue;
}
// 处理输入并判断用户选择
switch (input)
{
case 1:
printf("开始猜数字\n");
game_result = game(); // 调用游戏并获取结果
if (1 == game_result) // 猜对了,退出循环
{
return 0; // 直接退出程序
}
break;
case 0:
printf("不玩是吧,60秒后关机\n");
system("shutdown -s -t 60");
printf("如果不想关机,你可以继续选择玩游戏,不然就关机了\n");
break;
default:
printf("选择错误,请重新选择!\n");
system("shutdown -s -t 60");
printf("电脑还有60秒的时间关机,你可以再选择玩游戏,不然就关机了\n");
break;
}
} while (1);
return 0;
}
如果还有其它好玩的方法,请留言…