【C语言】编写电脑关机程序

方法一:普通用法

#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;
}

如果还有其它好玩的方法,请留言…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值