目录

前言:

1.先看主体部分(大体逻辑的部分)

a.为什么用do...while循环:

b.switch语句:

c.关于scanf ( ) 中的 %d %s 和 printf ( ) 的关系

d.menu ( ) 和game ( ) 函数为什么没有返回值:

e.为什么 intput 在while( )中:

2.menu ( ) 函数

a.主函数执行到menu ( ) 时,menu函数会打印出菜单,不用返回数值

3.game()函数

a.game()函数又分为俩个小块

b.生成随机数:

c.猜数字的过程中

4.结语

前言:

猜数字游戏是非常适合初学者学习的代码,其中包含的函数、循环和逻辑方式等知识点。这既能起到对以往知识的复习,也可以学习到一种不同的逻辑思考方式。有一些知识点可能曾经闻所未闻的,不要像多数人一样放弃,如果不走出舒适圈就不可能进步。难题摆在这里,唯一可以改变现状的只有你自己,加油。

以下是猜数字游戏的所有代码:

//要求写一个猜数字游戏
//1.自动产生一个1-100之间的随机数字
//2.猜数字
//        a.猜对了,就恭喜你,游戏结束
//        b.猜错了,会告诉你猜大了还是猜小了,继续猜,直到猜对为止
//3.游戏一直玩下去,除非退出游戏#define _CRT_SECURE_NO_WARNINGS
#include<stdlib.h>
#include<time.h>
#include<stdio.h>void menu()
{printf("***********************\n");printf("*******  1.play  ******\n");printf("*******  0.exit  ******\n");printf("***********************\n");
}void game()
{//猜数字游戏的实现 // 1.生成一个随机数//rand函数返回了一个0-3276之间的数字//时间-时间戳int ret = rand() % 100 + 1;//%100的余数是0-99,然后+1,范围就是1-100//printf("%d\n",ret);//2.猜数字int guess = 0;while (1){printf("请输入数字:>");scanf("%d", &guess);if (guess < ret){printf("猜小了\n");}else if (guess > ret){printf("猜大了\n");        }else{printf("恭喜你,猜对了\n");break;}}
}
int main()
{int input = 0;srand((unsigned int)time(NULL));do{menu();//打印菜单printf("请选择:>");scanf("%d", &input);switch (input){case 1:game();break;case 0:printf("退出游戏\n");break;default:printf("输入错误,请重新输入\n");break;}} while (input);return 0;
}

1.先看主体部分(大体逻辑的部分)

int main()
{int input = 0;srand((unsigned int)time(NULL));do{menu();//打印菜单printf("请选择:>");scanf("%d", &input);switch (input){case 1:game();break;case 0:printf("退出游戏\n");break;default:printf("输入错误,请重新输入\n");break;}} while (input);return 0;
}

a.为什么用do...while循环:

游戏设计的要求是运行程序就可以玩一把,第一把结束玩家再去做判断要不要玩下一把。此循环非常适合设计要求

b.switch语句:

注意此语句的使用要求

c.关于scanf ( ) 中的 %d %s 和 printf ( ) 的关系

d.menu ( ) 和game ( ) 函数为什么没有返回值:

menu ( ) 函数运行时打印菜单就行,没有什么是需要返回的

game ( )函数运行时去执行游戏就行,不需要返回值

e.为什么 intput 在while( )中:

while()根据()里的值来判断要不要进行下一次循环

试想一下:

》 如果玩家输入的input是5、是1、是6、是...这些都是非0的数,循环当然会执行起来

》 如果输入的input是0;0为假,退出do....while循环

》 case语句中input的值是1执行case1,是0执行case0,是其他数字则执行default

这样的话,while(input)岂不是很符合这个逻辑


2.menu ( ) 函数

a.主函数执行到menu ( ) 时,menu函数会打印出菜单,不用返回数值


3.game()函数

void game()
{//猜数字游戏的实现 // 1.生成一个随机数//rand函数返回了一个0-3276之间的数字//时间-时间戳int ret = rand() % 100 + 1;//%100的余数是0-99,然后+1,范围就是1-100//printf("%d\n",ret);//2.猜数字int guess = 0;while (1){printf("请输入数字:>");scanf("%d", &guess);if (guess < ret){printf("猜小了\n");}else if (guess > ret){printf("猜大了\n");}else{printf("恭喜你,猜对了\n");break;}}
}

a.game()函数又分为俩个小块,一个是生成随机数,另一个是玩家猜数字

b.生成随机数:

rand()函数返回一个0~3276的之间的数,我们需要的是0~100之间的随机数,再%100得到的就是0~99之间的数,最后+1得到的就是1~100之间的数了

c.猜数字的过程中

特别注意scanf函数一定要在while循环中,游戏结束一定要break,否则会一直游戏下去


4.结语

如果对您有帮助的话,不要忘记点赞+关注哦,蟹蟹

【C语言初学必看】猜数字游戏背后的知识相关推荐

  1. c语言程序设计 猜数字,猜数字游戏c语言编程,c语言编程 编一个猜数字游戏

    c语言编程 编一个猜数字游戏 #include #include #include #include void main()/*主函数*/ { int a,b,times=0,i,j,guess=0, ...

  2. c语言课题设计题目猜数字游戏,C语言课题设计报告(猜数字游戏)文档.doc

    C语言课题设计报告(猜数字游戏)文档 课 程 设 计 报 告 课程名称 C 语言课程设计 课题名称 猜数字游戏 专 业 电气工程及其自动化 班 级 1183 学 号 13 姓 名 鲁响 指导教师 王颖 ...

  3. C语言小恶搞之猜数字游戏

    这是一个用C语言做的带惩罚的猜数字游戏 下面是咱运用到的新知识! 1.自动关机部分:可搜索C语言实现电脑自动关机程序 system("shutdown -s -t 60");//注 ...

  4. C语言实现简单的猜数字游戏【快来看看你会吗~~】

    猜数字游戏 前言 游戏描述 思路 第一步,生成菜单 第二步,编写外部循环--反复玩 第三步,编写游戏代码 综上,整个游戏的代码如下: 前言 相信许多同学和我一样,刚接触c语言一段时间后,觉得c语言特别 ...

  5. c语言实现简单的猜数字游戏(1~100)

    猜数范围为1~100,猜大输出猜大了,猜小输出猜小了,游戏可以无限玩. 首先先做一个简单的菜单界面,只需要利用do--while循环就能实现,输入1开始游戏,输入0 退出游戏. int main() ...

  6. C语言课题1:猜数字游戏【从基础开始手把手教你】

    你们好呀!这里是@小梁coding~欢迎你们来到我的博客,这是我的第一篇文章,很高兴能够与大家在CSDN上进行学术交流(有问题欢迎在我的评论区下留言,嘿嘿),要想掌握一样技能,就一定要动手动脑实践,并 ...

  7. 【C语言初学必看】之多组输入的玄机

  8. 初学Java方法猜数字游戏猜1~99中的随机数字

    可在cmd命令行运行. import java.util.*; public class gussNum {public static void main(String[]args){int sj = ...

  9. 【C语言初学必看】一知半解的for循环嵌套for循环

最新文章

  1. python入门自学-你是如何自学 Python 的?
  2. 为什么SAP UI5框架在应用整个生命周期只调用onBeforeRendering一次
  3. 魔戒(思维+bfs)
  4. 线程可警告状态以及APC队列
  5. 【clickhouse】clickhouse 临时表
  6. 2.6 更多导数的例子
  7. 为什么TCP连接不可靠
  8. Java中递归复制多级文件夹(IO流)
  9. java 字符串 数字个数_Java 求一串字符串中字符,字母,数字的个数
  10. STM32中使用PS2手柄
  11. python共轭梯度法_Numerical Analysis: 共轭梯度法(1)--基本原理
  12. html5光线传感器,光线传感器是什么 光线传感器分类
  13. 室内导航将成为杀手级应用
  14. Java开发中常见的危险信号(中)
  15. 安卓5.1自带浏览器主页设置–转载
  16. 郑军科幻小说《冰与血》《海与人》
  17. presto 剖析详解
  18. PPC关键字广告是什么?一次搞懂CPC、CPM广告投放术语
  19. Elasticsearch面试题(大数据面试)
  20. win8输入法 找回中文简体下的美式键盘输入法

热门文章

  1. 5G 频段 频率与Band对应表
  2. HDU1435 Stable Match 【稳定婚姻问题】
  3. S5P6818裸机开发(2)-S5P6818 Boot Header解析
  4. UE4 回合游戏项目 14- 添加敌人攻击
  5. lcd屏和amoled屏的优缺点 lcd屏和amoled屏哪个效果好
  6. 清华附小校长窦桂梅给孩子们列的书单,值得一看!
  7. MySQL事务——万字详解
  8. lterator 迭代器 静态属性Symbol.iterator Symbol(Symbol.iterator)
  9. uniapp仿微信--聊天界面模板
  10. 派生类的构造函数和析构函数