C语言趣味实验--电脑关机&&猜数字
- 前言
- 一、如何实现强制关机?
- shutdown用法
- 二、优化
- 改进1:通过输入的字符串来判断是否关机
- 改进2:通过猜数字是否正确来判断是否关机
- 总结
前言
亲爱的朋友们大家好,正如题目所见,今天给大家带来了一个趣味小实验–强制电脑关机
不过由于操作过于简单,不能体现和好兄弟的“深厚友谊”,所以博主我就进行了一些小小的改良,具体操作且看下文,我们一起进入今天的学习。
一、如何实现强制关机?
shutdown用法
使用shutdown -s 即可实现电脑关机
如果要实现定时关机可以加上 -t 60(单位/s,表示一分钟后关机)
要在C语言中实现,需要引用<stdlib.h>头文件,调用 system(); 函数
代码如下:
#include<stdio.h>
#include<stdlib.h>
int main(){
system("shutdown -s -t 60");//注意中间的空格不能少
return 0;
}
大家可不要只看了第一部分代码就开始实践,上面的只能设置关机,不能取消关机的。(哈哈)
取消关机的命令是:shutdown -a
代码如下:
#include<stdio.h>
#include<stdlib.h>
int main(){
system("shutdown -s -t 60");
system("shutdown -a");
return 0;
}
二、优化
改进1:通过输入的字符串来判断是否关机
这里用到了字符串的比较函数strcmp(); 所以需要引用头文件<string.h>
简单介绍以下比较函数:
int strcmp ( const char * str1, const char * str2 );
比较两个字符串
将 C 字符串 str1 与 C 字符串 str2 进行比较。
此函数开始比较每个字符串的第一个字符。如果它们彼此相等,则继续使用以下对,直到字符不同或达到终止空字符。
str1>str2 返回 1
str1=str2 返回 0
str1<str2 返回 -1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>int main() {system("shutdown -s -t 60");char str[20] = { 0 };char cmp[20] = { "我是猪" };//或者“***下一周的饭我带了”while (1) {puts("请输入“我是猪”,否则电脑将会在一分钟后关机。");scanf("%s", str);if (strcmp(str, cmp) == 0) {system("shutdown -a");puts("恭喜你,关机取消。");break;}}return 0;
}
改进2:通过猜数字是否正确来判断是否关机
该部分设计了一个猜数字小游戏
那么我们就要来设置随机数:
1、我们可以直接创建一个整形数组提前设计好“随机数”;
2、也可以调用 rand()函数 来生成“伪随机数”,之所以叫伪随机数是因为rand()生成的数字虽然的确是随机的,但是由于每次启动生成的数都是一样的(相当于之前设计好的数组);
rand()不需要参数,他会生成一个从0到最大随机数的任意整数,最大随机数的大小通常是一个固定的大整数;
如果你要产生一个0~99中的随机数,可以表达为 rand()%100
生成一个1~100的随机数,可表达为 rand()%100+1
3、引用<time.h>头文件,来设置随机数种子 srand((unsigned int)time(NULL)),
引用<time.h>头文件可以调用系统时间,这里以时间为种子使得每次产生的随机数都不相同
设置游戏开始界面:
void Home() {printf(" ************************************\n");printf(" ***输入:1、开始游戏 0、退出游戏***\n");printf(" ************************************\n");
}
设计猜数字游戏:
void game() {system("shutdown -s -t 60");//一分钟后关机puts("游戏开始,如果一分钟内未能猜对数字,电脑将自动关机。");int num = rand() % 100 + 1; // 生成1--100的随机数int n = 0;printf("请输入猜测数字:");
while(1){scanf("%d", &n);if (n == num) {system("shutdown -a"); //关机取消printf("恭喜你猜对了, 关机取消\n");break;}else {if (n > num)printf("猜大了,请重新输入:");elseprintf("猜小了,请重新输入:");}}
}
完整代码如下:
#include<stdi0.h>
#include<stdlib.h>
#include<time.h>void Home() {printf(" ************************************\n");printf(" ***输入:1、开始游戏 0、退出游戏***\n");printf(" ************************************\n");
}void game() {system("shutdown -s -t 60");puts("游戏开始,如果一分钟内未能猜对数字,电脑将自动关机。");int num = rand() % 10000 + 1;//生成1~10000的随机数,当然我们自己测试的时候可以设置1~100int n = 0;printf("请输入猜测数字:");
while(1){scanf("%d", &n);if (n == num) {system("shutdown -a"); //关机取消printf("恭喜你猜对了, 关机取消\n");break;}else {if (n > num)printf("猜大了,请重新输入:");elseprintf("猜小了,请重新输入:");}}
}int main() {srand((unsigned int)time(NULL));int k = 0;while (1) {Home();printf("是否开始游戏:");scanf("%d", &k);if (k == 0)break;game();system("pause");system("cls");}return 0;
}
总结
以上,就是我们今天一起学习的内容,能给大家增进同学友谊的事情我当然是义不容辞的,希望能给大家带来帮助,谢谢。