C语言入门

您所在的位置:网站首页 猜猜这个字是什么三字 C语言入门

C语言入门

2024-07-09 04:25:43| 来源: 网络整理| 查看: 265

 前言

        Hello,大家好!我是Summer歆,今天给大家分享的是用C语言编写带有整蛊趣味的猜数字游戏,在猜错4次后需要输入指令否则电脑自动关机。

        让我带大家刨析一下游戏的组成:进入游戏后,程序会自动生成一个1-100之间的随机数,我们可以猜猜这个数字是多少。如果猜错了,程序会提示我们是猜大了还是猜小了。我们一共有4次机会,只要在4次内猜对我们就通过了游戏。如果4次机会耗完还没猜对就游戏失败,进入惩罚阶段:需要输入一段指令,否则电脑在一分钟内自动关机。接下来让我们看看游戏的设计过程以及最终的成品吧。

一. 如何生成一个随机数

       我们要想编写猜数字的游戏,首先要生成一个随机数供玩家猜测。那么我们要怎样才能实现一个随机数的生成呢?

   1.rand函数 #include int rand(viod);

        rand函数是C语言提供给我们能够生成随机数的函数,但它生成的是伪随机数,它的使用需要包含头文件stdlib.h。那么什么是伪随机数呢?我们运行两次rand函数就会发现生成的随机数是相同的。

        那是因为伪随机数并不是真正的随机数,它是对一个叫“种子”的基准值进行运算生成的随机值。而这个种子是不变的,默认值为1。也就是说我们每次使用rand函数生成的随机值是不变的。

       这样说不好理解,那我们打个比方:假设我们需要的随机数为y,随机数y的生成是基于一种运算完成的,假设这种运算为y=3x,x就是我们上面提到的种子,它的默认值为1,所以不管我们运算多少次得到的随机数y都是3,是不变的,也就配不上我们随机数这个名,只能退而求其次叫伪随机数。想让这个伪随机数变起来其实也很简单,我们只需要让“种子”改变就行了。当然,这里我们只是把这种运算简化了,真正的运算肯定比这复杂得多。

        问题到这里也就很明朗了:我们需要一个随机数,但生成的是伪随机数,达不到我们我们的要求,而改变“种子”的值我们就能得到一个真正的随机数。所有我们需要思考的是如何改变“种子”的值。

2.srand函数 void srand(种子)

       srand函数中的参数就是我们需要改变的种子,我们只要改变srand函数中的参数并在使用rand函数前调用srand函数就可以实现随机数的生成。

        随机数的生成是实现了,但是像这样每次手动输入并改变“种子”的值比较麻烦,如果我们能够让“种子”的值自动改变那就实现了真正意义上的随机数的生成。那么怎么让“种子”自动改变呢?

3.time函数 #include time_t time(time_t* timer)

       如果我们能找到一个自动改变的数并赋值给“种子”,那么这个问题就迎刃而解了。那么什么是在一直自动改变的呢?——答案是时间。

       time函数就可以获取时间,并以当前的时间与1970年1月1日0分0秒这个时间点做差,单位为秒,得到的数也叫时间戳。返回的类型为time_t类型,本质上是型。time函数的参数timer如果是非NULL的指针,函数也会将这个返回的差值放在timer指向的内存中带回去;如果是NULL型,就只会返回这个时间的差值,我们也就得到了自动改变的“种子”。接下来实现代码:

#include #include #include int main() { srand((unsigned)time(NULL)); printf("%d",rand()); return 0; }

 

       至此,我们实现了生成一个随机数,但这个随机数还不符合我们的要求,我们要的是1-100内的随机数,那我们该怎么做呢?---取模,如果我们把得到的随机数用100取膜就得到了0-99之间的随机数,在此基础上加1就得到了1-100之间的随机数。代码如下(运行图我就不展示了):

#include #include #include int main() { srand((unsigned)time(NULL)); int random_num=rand()%100+1; printf("%d",random_num); return 0; } 二. 如何让电脑自动关机

       在游戏失败后,我们就让电脑自动关机,但我们只是整蛊,并不是给整不活,还是得留点回旋的余地。我们可以设置让玩家在一分钟内完成特殊指令(这个可以自己DIY),比如输入我是那啥。否则就自动关机。那它是怎么实现的呢?

1.shutdown命令

         在电脑菜单中有搜索cmd,会出现一个命令提示符,我们点开后输入shutdown命令,再输入(空格)+(-s),表示关机;接着输入(空格)+(-t)表示设置关机时间;最后输入(空格)+(60),表示在60秒后关机。想要取消关机的话可以输入shutdown  -a。这些都是计算机中的指令,我们该怎么运用到C语言中来呢。

2.system库函数

system是包含在#include头文件中的库函数,可以用来执行系统命令,在了解到这些后我们就柳暗花明了。

#include #include int main { printf("电脑将在60秒后关机"); system("shutdown -s -t 60");\\关机指令 printf("电脑取消关机"); system("shutdown -a");\\取消关机指令 return 0; } 三. 功能组装 1.游戏菜单+生成随机数

   打开程序后玩家可以选择是否游戏。

#include #include #include int main() { int input = 0; srand((unsigned)time(NULL)); do { printf("******************"); printf("***** 1.play *****"); printf("***** 2.exit *****"); printf("******************"); printf("请选择:"); scanf("%d", &input); switch (input) { case 1: game();//游戏主体,封装成函数。 break; case 2: printf("退出游戏"); break; default: printf("输入错误,请重新输入"); break; } } while(input) return 0; } 2.猜数字

     玩家输入一个数字,与生成的随机数比对,如果错了提示猜大了还是猜小了,一共给玩家4次机会,只要在4次内猜对就通过了游戏。并封装在game()函数内。

void game(); { int randow_num = rand() % 100 + 1; int guess = 0; int i = 4; while (i) { if (guess > randow_num) { printf("猜大了\n"); } else if (guess < randow_num) { printf("猜小了\n"); } else { printf("恭喜你猜对了!"); break; } i--; if (i = 0) { punishment();//惩罚程序,封装成函数。 } } } 3.自动关机

        上文中已经介绍了如何让电脑自动关机,代码如下:

void punishment() { char get[20] = { 0 }; system("shutdown -s -t 60"); printf("请注意:您的电脑将在60秒内关机,如果输入:我是小丑,就取消关机"); again: scanf("%s", get); if (strcmp(get, "我是小丑") == 0)//判断两个字符串内容是否相等 { system("shutdown -a"); } else { printf("输入错误,请重新输入"); goto again; } } 四. 成品展示 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include void punishment() { char get[20] = { 0 }; system("shutdown -s -t 60"); printf("请注意:您的电脑将在60秒内关机,如果输入:我是小丑,就取消关机\n"); again: scanf("%s", get); if (strcmp(get, "我是小丑") == 0) { system("shutdown -a"); } else { printf("输入错误,请重新输入\n"); goto again; } } void game() { int randow_num = rand() % 100 + 1; int guess = 0; int i = 4; while (i) { printf("还剩下%d次机会\n", i); scanf("%d",&guess); if (guess > randow_num) { printf("猜大了\n"); } else if (guess < randow_num) { printf("猜小了\n"); } else { printf("恭喜你猜对了!\n"); break; } i--; if (i == 0) { printf("游戏失败,请接受惩罚\n"); punishment(); } } } int main() { srand((unsigned)time(NULL)); int input = 0; do { printf("******************\n"); printf("***** 1.play *****\n"); printf("***** 2.exit *****\n"); printf("******************\n"); printf("请选择:"); scanf("%d", &input); switch (input) { case 1: game(); break; case 2: printf("退出游戏"); break; default: printf("输入错误,请重新输入"); break; } } while (input); return 0; }

        到这也就结束了今天的分享,快复制代码去整蛊你的小伙伴吧!我是Summer歆,期待每位读者的关注!



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭