拳击哥提示:学习后要记得锻炼哦
目录
1、猜数字小游戏
我们分为四个步骤:
- 设计主函数,主函数里面我们脑海里面首先要有一个框架,我要有一个循环语句来控制整个程序的退出或继续控制游戏。我要有一个开始和退出的程序,来决定我是否继续玩下去。
- 设计菜单函数,设计菜单函数就是设计一个黑框框,里面有开始和退出两个字段。
- 设计游戏函数,设计游戏函数,游戏函数里面我们要随机生成一个随机数并且判断这个随机数与我输入的数是否一致。
- 引入头文件,引入各个函数所需要的头文件。
🤼那么,有一程序,猜出1-100以内随机生成的数:
#include<stdio.h> #include<stdlib.h>//rand()函数、cls清理屏幕函数都用此头文件 #include<time.h>//time时间戳 void caidan()//这是一个菜单 { printf("*********************\n"); printf("***** 开始:1 *****\n"); printf("***** 退出:0 *****\n"); printf("*********************\n"); } void game()//这是游戏函数 { int rat = rand()%100+1; int num = 0; while (1) { printf("请输入你的数字:>"); scanf("%d", &num); if (rat < num) { printf("你猜大了\n"); } else if (rat >num) { printf("你猜小了\n"); } else { printf("恭喜你,你猜对了\n"); break; } } system("cls"); } int main() { int n = 0; srand((unsigned)time(NULL)); do { caidan(); printf("请选择:>"); scanf("%d", &n); switch (n) { case 0:printf("你已退出游戏\n"); break; case 1:game(); break; default:printf("请输入正确的数字\n");break; } } while (n); return 0; }
您可以复制程序,操作一下
大家陌生的恐怕就只有system、rand、srand这三个函数,下面我就来讲解:
1.1、system()函数
system()函数:执行 dos(windows系统) 或 shell(Linux/Unix系统) 命令,包含在#include<stdlib.h>头文件中,格式为:
system(" ")
1.2、rand()函数
rand()函数:rand()函数是按指定的顺序来产生整数,因此每次执行该语句都打印相同的值,所以说C语言的随机并不是真正意义上的随机,有时候也叫伪随机数。
编辑
1.3、srand()函数
srand()函数:使用 rand() 生成随机数之前需要用srand()函数来设置随机数的生成器来进行伪随机数序列初始化,它的头文件为#include<stdlib.h>,那么srand(unsigned seed)函数中seed 又叫随机种子,我们每次给seed提供一个随机数,但是我们不能一直提供一个固定值,通俗讲就是,如果每次提供的 seed 是一样的话,那么每轮生成给srand随机数不是一样的吗,因此我们需要每次提供不同的 seed 来做到完全的随机,怎么办呢,我们可以想到一个概念时间戳。时间是在不断的变化的。那么如果我们把时间戳当为seed那么每轮生成的不就是完全的随机数吗?
格式:
srand(unsigned seed)
编辑
1.4、time()函数
time()函数 : 为了实现srand()函数中一直生成一个完全不同随机数那么这个随机数最好的应该就是不断变化的时间了,因此我们用到time()函数来生成当前的时间所产生的数。只需要用到time(NULL)就好了,我不需要存储到任何地方,我只需要这个随机数就好了。那么time()函数的头文件为#include<time.h>
格式:
time(NULL)
编辑
拳击哥推荐一个帮助手册,你不知道的上面都有👉C语言帮助手册
2、关机小游戏
2.1、goto语句
C语言中提供了一个可以跳转标记的语句goto语句。我们并不常用,只有在深度嵌套的时候我们会用上goto语句。因为多层循环嵌套拿break是退出不了那么多个循环的,它只能退出当前的循环。比如多个for{for{for{for{break;}}}}那么我想跳出所有的循环,单单靠break是达不到效果的。因此我们可以用goto语句来实现。
🤼如我要退出多个for循环:
for () { for () { for () { for () { goto xunhuan; } } } } xunhuan:if () { }
那么以上程序就是通过goto语句来退出多个for循环
2.2、stcmp()函数
首先我们知道几个知识点:C语言中的stcmp()函数是比较两个字符串的大小的,java中equals()方法也是比较两个字符串的大小的,但它们俩有极大的不同的。比如system()函数是用来执行系统命令的。
stcmp()函数:比较两个字符串包含在#include<string.h>头文件中。
格式为:
- (stcmp(str1,str2)<0)如果返回值小于 0,则表示 str1 小于 str2.
- (stcmp(str1,str2)==0)如果返回值等于 0,则表示 str1 等于 str2.
- (stcmp(str1,str2)>0)如果返回值大于 0,则表示 str1 大于 str2.
system()函数:执行 dos(windows系统) 或 shell(Linux/Unix系统) 命令,包含在#include<stdlib.h>头文件中。
格式为:
system(" ")
🤼♀️有了以上知识点的加持,我们来实现关机小游戏吧:
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { char arr[20] = { 0 }; system("shutdown -s -t 60"); cont: printf("请注意你的电脑将在一分钟内关机请输入:我是大笨蛋,方可关闭此程序\n"); scanf("%s", arr); if (strcmp(arr, "我是大笨蛋")==0) { printf("哈哈,承认你是笨蛋了吧?\n"); system("shutdown -a"); } else { goto cont; }
该程序运行后会提示你,请注意你的电脑将在一分钟内关机请输入:我是大笨蛋,方可关闭此程序
编辑
当你输入我是大笨蛋就可以取消关机
编辑
您也可以通过win键+R,弹窗口后输入cmd打开命令提示符。输入shutdown /s /t+回车打开shutdown的用法界面然后输入shutdown /s /t 60 +回车就开启了关机倒计时60秒,再输入shutdown /a +回车您就取消了关机程序。
编辑
那么上面两个小程序实现过后,您可以自己实现两个程序结合后的程序。猜数字如果未在规定的时间内猜到随机生成的数字就关机。赶紧试试吧~
那么本期博客就到这里结束,感谢大家的耐心阅读,如有帮助请一键三连,万分感谢!!!