一:关机程序的基本代码
写一个关机程序
功能:
程序运行起来的话,电脑就倒计时1分钟关机
如果在1分钟内输入:"我是猪",则取消关机
不输入或者输入错误,则1分钟后关机
关机程序完整代码如下(使用的是goto语句实现的)
cpp
int main()
{
char input[20] = { 0 };//字符数组,用来存放字符串,可以存20个字符
system("shutdown -s -t 60");//设置命令, 这里需要头文件
//shutdown是关闭的意思,-s是设置的意思,-t是时间的意思,60是我们执行的时间,注意它们之间要空格隔开
again:
printf("不要在负隅顽抗了,系统在1分钟内马上就关机了,如果输入:我是猪,则取消关机\n");
scanf("%s", input);//这里不用去地址,因为数组名本身就是地址
if (strcmp(input, "我是猪")==0)//strcmp 是string compare的缩写,【字符串比较】的意思,如果两个字符串相等,则strcmp函数会返回0,这里还需要头文件
{
system("shutdown -a");//取消关机
printf("已经取消关机\n");
}
else
{
goto again;
}
return 0;
}
使用while循环写的完整关机程序代码
cpp
int main()
{
char input[20] = { 0 };
system("shutdown -s -t 60");//设置命令
while (10)//随便给的数字
{
printf("不要在负隅顽抗了,系统在1分钟内马上就关机了,如果输入:我是猪,则取消关机\n");
scanf("%s", input);
if (strcmp(input, "我是猪") == 0)//字符串比较,如果两个字符串相等,则strcmp函数会返回0
{
system("shutdown -a");//取消关机
printf("好的,猪,我已经取消关机了\n");
break;
}
}
return 0;
}
现在我来给大家一一解释关机程序代码怎么写的
这里我们先来认识几个新的函数
syetem函数的介绍
shutdown是关闭的意思,-s是设置的意思,-t是时间的意思,60是我们执行的时间,可以改成其他的秒数,还有,注意一下它们之间要空格隔开,同时它还需要一个头文件
cpp
system("shutdown -s -t 60");
头文件
cpp
#include<stdlib.h>//system的头文件
strcmp函数的介绍
strcmp 是string compare的缩写,中文意思是【字符串比较】,如果两个字符串相等,则strcmp函数会返回0,此外这里还需要头文件,下面是将input即我们输入的值,与"我是猪"比较,如果你输入了我是猪,则与我们规定的输入值一样,那么函数就会返回为0
cpp
strcmp(input, "我是猪")==0
头文件
cpp
#include<string.h>//strcmp的头文件
还有关于goto语句,在前面几篇我的博客里,我就初步的介绍了goto语句的基本使用,想必大家应该有所了解,这里我们规定跳到again那个地方去,again我们可以随便设置,放在哪个地方,我们就会跳到那个对方
cpp
goto again;
这了我给大家看看关机程序是说明样子的
这是我们运行代码的时候出现的情况

这里我们输入 我是猪

输入完之后,我们就已经取消了关机程序代码

这里如果我们不输入正确的答案,它会再次提醒我们,请输入我是猪,然后取消关机,要不然一分钟过后就真的关机了

关于while循环写的关机程序代码是一样的,这里我就不给大家展现了
二:随机函数rand、srand的基本介绍
注意:随机数的整体范围是0-37962,不能超过这数,这个是计算机规定的
1.rand函数的基本介绍
rand函数的原型
int rand (void);
作用:可以生成随机数
注意:它需要一个头文件,#include<stdlib.h>
头文件
cpp
#include<stdlib.h>
rand代码的基本代码的使用
cpp
int main()
{
printf("%d \n", rand());
printf("%d \n", rand());
printf("%d \n", rand());
printf("%d \n", rand());
printf("%d \n", rand());
printf("%d \n", rand());
return 0;
}
输出结果
它生成的是一个伪随机数,不是真正的随机数,第一次运行代码的时候,确实是随机出来的,但是你再运行一次代码,我们发现数没有变化
原因:rand函数是对一个默认的生成器(种子)的基准上生成的随机数,想要真正的生成出随机数,就要改变它的生成器(种子)rand函数一开始设置的(种子)默认1,你再次运行代码的时候,它还是1,因此不会生成真正的随机数

现在我们来设置这个生成器(种子),这里我们需要用到另一个函数srand
2.srand函数的介绍
srand函数的原型
srand void (unsigned int seed);
这里我们的(种子)是1的话,结果就是我们最上面运行的代码的输出值
cpp
srand(1);
如下

此时我们将(种子)改成2
cpp
srand(2);
printf("%d \n", rand());
printf("%d \n", rand());
printf("%d \n", rand());
printf("%d \n", rand());
printf("%d \n", rand());
printf("%d \n", rand());
return 0;
}
输出结果如下,我们发现这里的数字明显和上面的不一样了,所以总的来说,srand其实就是将生成器(种子)进行了变化,所以我们的输出值也会跟着变化

这里我们来正式设置一个随机数,不用再让我们自己去改那个种子了,它会自动的变化我们的种子
先看下完整的代码,后面我会给大家解释的
cpp
int main()
{
srand((unsigned int)time(NULL));//time(NULL)的意思是,调用time函数返回时间戳,这里没有接收返回值,不用time参数,我们就用NULL,这里的NULL先不做解析,后面我会讲到的
printf("%d \n", rand());//还有就是注意一下:time函数的使用也要头文件 #include<time.h> 不要忘记了
printf("%d \n", rand());
printf("%d \n", rand());
printf("%d \n", rand());
printf("%d \n", rand());
printf("%d \n", rand());
return 0;
}
第一次输出结果

第二次输出结果,我们发现第一次和第二次的结果发生了变化

现在我来给大家一一解释
我们因为使用了下面这个代码,所以我们才能实现变化的输出值
time(NULL)的意思是,调用time函数返回时间戳,这里没有接收返回值,不用time参数,我们就用NULL,这里的NULL先不做解析,后面我会讲到的
unsigned int这个是整型的定义,我们之所以要转变函数,是因为time()函数并不会被编译器认识,所以为了让编译器认识time()函数,所以我们要将它变成整型函数
cpp
srand((unsigned int)time(NULL));
注意:time()函数也是需要一个头文件,大家不要忘记了
cpp
#include<time.h>
三:随机数范围的规定方法
问题:生成0-99之间的随机数
%100的话我们的余数就一定是0-99之间的数字
cpp
int main()
{
srand((unsigned int)time(NULL));
printf("%d \n", rand()%100);//余数范围是0-99
printf("%d \n", rand()%100);
printf("%d \n", rand()%100);
printf("%d \n", rand()%100);
printf("%d \n", rand()%100);
printf("%d \n", rand()%100);
return 0;
}

问题:生成1-100的随机数
%100余数范围是0-99,加上1就是1-100
cpp
int main()
{
srand((unsigned int)time(NULL));
printf("%d \n", rand() % 100+1);//余数范围是0-99,加上1就是1-100
printf("%d \n", rand() % 100+1);
printf("%d \n", rand() % 100+1);
printf("%d \n", rand() % 100+1);
printf("%d \n", rand() % 100+1);
printf("%d \n", rand() % 100+1);
return 0;
}

问题:生成100-200的随机数
余数范围是0-100,加上100,就是100-200
cpp
int main()
{
srand((unsigned int)time(NULL));
printf("%d \n", 100+rand() % (200-100 + 1));//余数范围是0-100,加上100,就是100-200
printf("%d \n", 100+rand() % (200-100 + 1));
printf("%d \n", 100+rand() % (200-100 + 1));
printf("%d \n", 100+rand() % (200-100 + 1));
printf("%d \n", 100+rand() % (200-100 + 1));
printf("%d \n", 100+rand() % (200-100 + 1));
return 0;
}

其实这里的数我们有一个格式,就是随机数范围设置的公式,我们可以好好的理解这个公式,我们就能更好的去理解上面的数字是怎么加的
a + rand() % ( b - a + 1 )
换成100-200的随机数,相当于a=100,b=200
好了,以上就是关于关机程序带的基本介绍,以及随机函数的基本使用,以及我们怎么去规定随机数的一个大致范围,加上我们之前讲解的所有内容,加上今天的知识,我们就能写一个猜数字的游戏,这里我们放到下一篇博客来专门讲我们的猜数字游戏