当前位置: 首页 > news >正文

C语言——猜数字游戏

1.主函数部分

int main() { srand((unsigned int)time(NULL)); int flog = 1; do { int t = rand() % 100 + 1; printf("请选择:"); scanf("%d", &flog); switch (flog) { case 1: printf("开始游戏"); break; case 0: printf("游戏结束!"); break; default: printf("选择错误,请重新输入:\n"); break; } } while (flog); return 0; }

首先进入程序采用do·····while语句先执行一次选择是继续进行游戏还是结束游戏。将1设为开始游戏0设置为结束游戏,同时do····while的条件设为选择的flog,选择为0时结束循环。内部的switch语句的选择条件为flog三种情况如上。

2.随机数的生成

既然是猜数字,自然就要产生一个随机数来让玩家来猜,这里就需要一个产生随机数的函数,C语言中提供了一个rand()(0~32767)的函数来产生随机数,当然这个随机数是一个伪随机数,他产生的随机数是固定的,这时需要srand()来初始化rand的种子,这里我们用时间来作为种子,格式为time(NULL),再用一个变量来接收最终的随机数。

srand((unsigned int)time(NULL)); int t = rand() % 100 + 1;

3.登录界面

void sum() { printf("***********************\n"); printf("****** 1: 开始 ********\n"); printf("****** 0:结束 ********\n"); printf("***********************\n"); }

这里将登录界面封装成一个函数sum(),每次调用函数打印登陆界面,这里不需要返回值因此函数类型为void。

4.游戏界面

void Add(int t) { printf("游戏开始!%d\n", t); int count = 0; int a = 5; do { scanf("%d", &count); printf("还有%d次机会!\n", a); if (count > t) { printf("猜大了\n"); a--; } else if (count < t) { printf("猜小了\n"); a--; } else { printf("猜对了!\n"); break; } } while (a); if (a == 0) { printf("次数用完了!\n"); } }

游戏部分将其封装为一个函数Add(),不需要返回值。如果前面随机数在主函数中产生的这里需要将随机数传到Add()中,然后创建一个变量来让玩家输入值来猜。这里循环采用do····while进入函数之后直接操作输入,不会让玩家进来后不知道做什么将玩家输入的数字与随机数比较判断猜大了还是猜小了或者猜对当猜对了就结束循环。当然这里加入了次数限制当猜大了或者猜小了都会减一同时输出剩余次数,do····while的条件就是次数,当次数为零时结束循环,这里要分辨是次数用完结束还是猜对了结束,最后可以再加入判断剩余次数。

if (a == 0) { printf("次数用完了!\n"); }

这样就基本完成了猜数字功能。最后也不要忘记其他函数的头文件了哦。

下面是全部代码:

#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include<stdlib.h> #include <time.h> #include <windows.h> void Add(int t) { printf("游戏开始!%d\n", t); int count = 0; int a = 5; do { scanf("%d", &count); printf("还有%d次机会!\n", a); if (count > t) { printf("猜大了\n"); a--; } else if (count < t) { printf("猜小了\n"); a--; } else { printf("猜对了!\n"); break; } } while (a); if (a == 0) { printf("次数用完了!\n"); } } void sum() { printf("***********************\n"); printf("****** 1: 开始 ********\n"); printf("****** 0:结束 ********\n"); printf("***********************\n"); } int main() { srand((unsigned int)time(NULL)); int flog = 1; do { int t = rand() % 100 + 1; sum(); printf("请选择:"); scanf("%d", &flog); switch (flog) { case 1: Add(t); break; case 0: printf("游戏结束!"); break; default: printf("选择错误,请重新输入:\n"); break; } } while (flog); return 0; }
http://www.jsqmd.com/news/1130471/

相关文章:

  • QRemeshify:基于QuadWild与Bi-MDF的智能四边形重拓扑技术深度解析
  • Twitter API PHP实战:10个常见Twitter API使用场景完整示例
  • 如何用WeChatMsg重新定义个人数据主权:3个颠覆性实践路径
  • 从零开始:使用PyTorch-Segmentation-Detection构建自定义数据集训练流程
  • RWD-Table-Patterns与Bootstrap 5深度集成:打造企业级响应式数据表格
  • Savant开发服务器:如何实现动态代码重载与远程调试
  • 题解:学而思编程 素数加法算式
  • SDC命令详解:使用write_script命令进行输出
  • 企业级LLM中间件架构:litellm智能请求处理与可观测性方案解析
  • 题解:学而思编程 折半与最小值
  • 【Springboot毕设全套源码+文档】基于springboot日报管理系统设计与实现(丰富项目+远程调试+讲解+定制)
  • DolphinDB:高性能时序数据库与数据分析平台
  • Twitter API PHP与Composer集成:如何管理依赖和版本控制
  • 【信息科学与工程学】【通信工程】第一百二十三篇 网络NaaS函数 01
  • 如何10分钟完成黑苹果配置:OpCore Simplify终极指南
  • 高通平台VSIM 技术适配与实现
  • Playwright自动化测试实战:从原理到小红书登录模拟
  • [A-48]ARMv9/v8-电源状态管理机制(PSCI协调机制)
  • STM32扩展EEPROM存储方案与I2C驱动实践
  • 题解:学而思编程 幸运数字
  • 如何在离线环境下实现高效图片文字识别?Umi-OCR让你告别网络依赖
  • 5分钟掌握Mousecape:让Mac鼠标指针变身个性化艺术品
  • Clang-tutorial项目深度解析:从ASTVisitor到Rewriter的核心功能详解
  • 如何让老款Mac焕发新生?OpenCore Legacy Patcher完整指南解锁最新macOS体验
  • 智慧教育平台电子课本下载终极指南:三步获取优质教学资源
  • 企业级邮件中继架构方案:docker-postfix解决容器化应用邮件发送挑战
  • Heya最佳实践:来自生产环境的10个邮件序列设计经验
  • 新能源汽车功率级测试自动化方案:从理论到实践的深度解析
  • 新能源汽车热管理核心技术解析:冬季续航提升40%的行业方案
  • 调查研究-216 Tesla Robotaxi 进了 Miami,但真正的考题才刚开始