C语言例程:猜数字游戏

news2024/9/22 13:42:46

猜数字游戏

实现一个简单的猜数字游戏,学习 while 循环语句的用法。

实例解析

while 循环语句

while 语句的一般形式为:

 while(表达式)语句; 

其中表达式是循环条件,语句为循环体。
while 语句的语义是:计算表达式的值,当值为真(非 0)时,执行循环体语句。使用 while
语句应注意以下几点。
(1)while 语句中的表达式一般是关系表达或逻辑表达式,只要表达式的值为真(非 0)即可
继续循环。
(2)循环体如包含有一个以上的语句,则必须用{}括起来,组成复合语句。
(3)应注意循环条件的选择以避免死循环。
(4)允许 while 语句的循环体中包含 while 语句,从而形成双重循环。

do-while 语句

do-while 语句的一般形式为:

do 语句; 
 while(表达式); 

其中语句是循环体,表达式是循环条件。
do-while 语句的语义是:先执行循环体语句一次,再判别表达式的值,若为真(非 0)则继
续循环,否则终止循环。
do-while 语句和 while 语句的区别在于 do-while 是先执行后判断,因此 do-while 至少要执行
一次循环体。而 while 是先判断后执行,如果条件不满足,则一次循环体语句也不执行。while 语
句和 do-while 语句一般可以相互改写。
对于 do-while 语句还应注意以下几点。
(1)在 if 语句和 while 语句中,表达式后面都不能加分号,而在 do-while 语句的表达式后面
则必须加分号。
(2)do-while 语句也可以组成多重循环,而且也可以和 while 语句相互嵌套。
(3)在 do 和 while 之间的循环体由多个语句组成时,也必须用{}括起来组成一个复合语句。
(4)do-while 和 while 语句相互替换时,要注意修改循环控制条件

本程序主要思路

本程序主要思路是:先使用 while 循环语句控制输入密码的过程,如果 3 次输入错误,则给
出提示信息并退出程序。密码通过后,使用 while 语句控制程序流程,如果输入的数值不等于程
序给定的值,则程序一直循环运行下去,直到猜中给定的值。在这层 while 内部又用 do-while 语
句控制输入值的范围,如果输入值不在 1 和 100 之间,就要求重新输入;然后通过 if…else 语句
判断输入值的范围,并给出相应的提示信息,直到猜中给定值,程序结束

程序代码

int main()
{
    int Password=0,Number=0,price=58,i=0;
    system("cls");/* 清屏 */
    printf("\n====This is a Number Guess Game!====\n"); /* 提示信息 */
    while( Password != 1234 ) /* 当输入密码错误时 */
    {
        if( i >= 3 ) /* 如果输入错误次数大于 3 就退出 */
        {
            printf("\n Please input the right password!\n ");
            return -1;
        }
        i++;
        puts("Please input Password: ");
        scanf("%d",&Password); /* 要求重新输入密码 */
    }

    i=0;
    while( Number!=price )
    {
        do{
            puts("Please input a number between 1 and 100: ");/* 提示猜数 */
            scanf("%d",&Number);
            printf("Your input number is %d\n",Number);
        }while( !(Number>=1 && Number<=100) );/* 判断范围是否正确 */

        if( Number >= 90 )/* 输入大于 90 的情况 */
        {
            printf("Too Bigger! Press any key to try again!\n");
        }
            else if( Number >= 70 && Number < 90 ) /* 比较大的情况 */
        {
            printf("Bigger!\n");
        }
        else if( Number >= 1 && Number <= 30 ) /* 太小的情况 */
        {
            printf("Too Small! Press any key to try again!\n");
        }
        else if( Number > 30 && Number <= 50 ) /* 比较小的情况 */
        {
            printf("Small! Press any key to try again!\n");
        }
        else
        {
            if( Number == price )
        {
            printf("OK! You are right! Bye Bye!\n");
        }
        else if( Number < price ) /* 相差不多的情况 */
        {
            printf("Sorry,Only a little smaller! Press any key to try again!\n");
        }
        else if( Number > price )
            printf(" Sorry, Only a little bigger! Press any key to try again!\n");
        }
        getch();
    }

    return 0;
}

程序运行截图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/392886.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue使用ElemenUI对table的指定列进行合算

前言 最近有一个想法&#xff0c;就是记录自己花销的时候&#xff0c;table中有一项内容是花销的金额。然后想在table的底部有一项内容是该金额的总计。 然后我就顺着elemetui的table组件寻找相关的demo&#xff0c;还真发现了一个这样的demo。 对于这个demo&#xff0c;官方…

嵌入式 Linux进程之间的通信

目录 1、Linux进程间的通信继承 2、Linux进程之间的通信种类 3、管道 3.1 管道概述 3.2 管道文件 3.3 管道特点 3.4 通信框架 3.5 对管道文件进行操作 4、标准流管道 5、无名管道 PIPE 5.1 无名管道特点 5.2 创建管道函数 6、有名管道&#xff08;FIFO&#x…

FPGA lattice 深力科LCMXO3LF-2100C-5BG324I拥有很强的灵活性和适应性可编程内核的FPGA 值得期待

FPGA lattice 深力科LCMXO3LF-2100C-5BG324I MachXO3系列 拥有很强的灵活性和适应性可编程内核的FPGA 值得期待 &#xff0c;FPGA 现场可编程逻辑器件,小尺寸&#xff0c;高性能&#xff01;在工业领域&#xff0c;它可以用于网络控制器&#xff0c;PLC,网络边缘计算&#xff0…

kubernetes--分析容器系统调用:Sysdig

目录 Sysdig介绍&#xff1a; sysdig工作流程 安装Sysdig sysdig常用参数&#xff1a; sysdig过滤&#xff1a; sysdig之Chisels&#xff08;工具箱&#xff09;&#xff1a; 其他常用命令 Sysdig介绍&#xff1a; Sysdig是一个非常强大的系统监控分析和故障排查工具。汇…

MOEA/D: A Multiobjective Evolutionary Algorithm Based on Decomposition

目录1 问题定义2 算法步骤3 代码4 效果1 问题定义 本博客以最小化问题为例 f1x2f2(x−2)2min⁡f(f1(x),f2(x))\begin{aligned} f_1 & x ^2 \\ f_2 & (x - 2) ^2 \\ \min f & (f_1(x), f_2(x)) \end{aligned} f1​f2​minf​x2(x−2)2(f1​(x),f2​(x))​ 代码…

二十、常用调优工具概述与Jprofiler演示

常用调优工具 1.JDK命令行 2.Eclipse:Memory Analyzer Tool 3.Jconsole 4.VisualVM 5.Jprofiler 6.Java Flight Recorder 7.GCViewer 8.GC Easy jprofiler 简介&#xff1a; 他把CPU、执行引擎和内存的剖析组合在一个强大的应用中。JProfiler可提供许多IDE整合和应用服务器整合…

集成学习boosting、bagging、stacking

目录 一、介绍 二、三种架构学习 &#xff08;1&#xff09;boosting &#xff08;2&#xff09;bagging &#xff08;3&#xff09;stacking 一、介绍&#xff1a; 对于单个模型来说很难拟合复杂的数&#xff0c;模型的抗干扰能力较低&#xff0c;所以我们希望可以集成多…

ElasticSearch 8 学习笔记总结(五)

文章目录一、ElasticSearch 8 版本二、ES8 集群 环境安装1. 生成安全证书2. 生成http证书3. 配置第一个节点4. 配置其他节点三、ES集群 关联问题解决四、 Kibana 安装和使用五、kibana 基础操作1. 索引操作2. 文档操作3. 文档搜索4. 索引模板六、分词器七、文档评分机制1. 什么…

上拉电阻与下拉电阻总结

文章目录相关概念介绍IO引脚的三态输出之高阻态---将逻辑门与系统其他部分隔离&#xff0c;电平外部控制IO引脚输出模型 推挽电路 与 开漏电路---单独开漏无高电平驱动能力原理介绍什么是上下拉电阻&#xff1f;---把IO口用电阻拉到正压VCC&#xff08;上拉&#xff09; 或 接地…

如何使用Docker容器部署O2OA(翱途)开发平台与OnlyOffice的集成版本?

O2OA(翱途)开发平台[下称O2OA平台或者O2OA]默认可以和OnlyOffice进行集成来实现在线文档编辑以及流程集成。开发者可以直接安装O2OA官网的OnlyOfficeO2Server的Docker版本用于体验。本文将详细介绍如何安装O2OA OnlyOffice的Docker版本。OnlyOffice Docs Sever可以单独安装,O2…

aws apigateway 使用httpapi私有集成ecs服务

参考资料 https://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/http-api-private-integration.htmlhttps://docs.aws.amazon.com/zh_cn/apigateway/latest/developerguide/http-api-develop-integrations-private.html 在《aws apigateway 基础概念和入门示…

Vue2.0开发之——购物车案例-Goods组件封装-把购买数量传给counter组件(52)

一 概述 Goods组件中导入Counter组件设置Counter组件的数量 二 Goods组件中导入Counter组件 2.1 Goods组件中导入Counter组件 import Counter from "/components/Counter/Counter.vue";2.2 Goods组件中注册Counter组件 components:{Counter }2.3 Goods组件中使用…

GDKOI2023游记+一周模拟赛题解

温馨提示&#xff1a; 1)有些链接需要在本校OJ上的博客里才能打开。2)没更新完。 Day -6&#xff08;3.4&#xff09; 晚上打了场AtCoder&#xff0c;rank1515rank 1515rank1515&#xff0c;切了5题&#xff0c;信心。 zswangziye的atcoder账号 打T5的时候心态不稳&#xff…

2022年MathorCup数学建模A题大规模指纹图像检索的模型与实现解题全过程文档加程序

2022年第十二届MathorCup高校数学建模 A题 大规模指纹图像检索的模型与实现 原题再现 在生物特征识别领域&#xff0c;指纹作为最具独特性与持久性的生物特征之一&#xff0c;被广泛应用于身份识别。   指纹识别过程分为特征提取和比对两个环节。其中特征提取环节会提取用于…

matplotlib: 绘制柱状图

通过matplotlib绘制柱形图 第一个例子 from matplotlib import pyplot as plty [10, 11, 12, 11, 9, 8, 13, 10] # 创建y轴坐标 x list(range(1,9)) # 创建x轴坐标# 创建x轴显示的参数&#xff08;此功能在与在图像中x轴仅显示能被10整除的刻度&#xff0c;避免刻度过多分…

比亚迪:全球最大电动汽车制造商的坎坷成长之路

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 特斯拉&#xff08;TSLA&#xff09;首席执行官埃隆马斯克表示&#xff0c;特斯拉最接近的竞争对手可能是一家中国电动汽车公司。猛兽财经认为&#xff0c;沃伦•巴菲特支持的比亚迪&#xff08;0211&#xff09;可能是马斯…

在ubuntu上部署与使用docker(python)

1.安装Docker首先&#xff0c;更新现有的包列表sudo apt update接下来安装一些允许童HTTPS才能使用的软件包&#xff1a;sudo apt install apt-transport-https ca-certificates curl software-properties-common然后将官方Docker存储库的GPG秘钥添加到您的系统curl -fsSL http…

关于 C# 引用参数和值参数

关于 C# 引用参数和值参数 C# 数据类型分为值类型和引用类型&#xff0c;两者的区别在于值类型的数据存储在栈中&#xff0c;而引用类型的数据存储在堆中&#xff0c;但是栈中会存放指向存储数据的堆的位置。 传递参数时&#xff0c;传递的是数据栈中的值&#xff0c;实参将数…

高等数学——一元函数微分学

文章目录导数与微分概念几何意义连续、可导、可微之间的关系求导法则基本初等函数的导数公式有理运算法则复合函数求导法奇偶性和周期性隐函数求导反函数求导参数方程求导对数求导法高阶导数概念常用的高阶导数公式微分中值定理和导数的应用微分中值定理导数的应用函数的单调性…

巾帼绽芬芳 一起向未来(下篇)

编者按&#xff1a;为了隆重纪念纪念“三八”国际妇女节113周年&#xff0c;快来与你全方位、多层次分享交流“三八”国际妇女节的前世今生。分上篇&#xff08;节日简介、节日发展和节日意义&#xff09;、中篇&#xff08;节日活动宗旨和世界各国庆祝方式&#xff09;和下篇&…