【C语言程序设计】选择结构程序设计

目录

前言

一、程序阅读

二、程序改错

三、程序设计

总结


🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。

💡本文由Filotimo__✍️原创,首发于CSDN📚。

📣如需转载,请事先与我联系以获得授权⚠️。

🎁欢迎大家给我点赞👍、收藏⭐️,并在留言区📝与我互动,这些都是我前进的动力!

🌟我的格言:森林草木都有自己认为对的角度🌟。

前言

if语句的三种形式:

1. 第一种形式: if 语句只包含一个条件,当该条件为真(true)时,执行 if 语句块中的代码。
2. 第二种形式:if-else 语句包含两个条件,当第一个条件为真时,执行 if 语句块中的代码,否则执行 else 语句块中的代码。
3. 第三种形式:if-else-if 语句包含多个条件,当第一个条件为真时,执行第一个 if 语句块中的代码,否则检查第二个条件,第二个条件为真时执行第二个 if 语句块中的代码,否则继续检查下个条件,一直到所有条件都被检查过为止。

表达式的值在 switch 语句中只能是基本数据类型,如 int、char、枚举、bool 等。实型数据(浮点数)不能直接作为 switch 语句的表达式,因为 switch 语句在比较值时使用的是恒等比较,而实型数据的恒等比较容易出现精度问题。


一、程序阅读

#include <stdio.h>int main() 
{int a, b, c, t;printf("输入3个整数的值: "); // 提示用户输入三个整数scanf("%d %d %d", &a, &b, &c); // 接收用户输入的三个整数if (a > b) // 如果第一个数大于第二个数,则交换它们的值{t = a;a = b;b = t;}if (a > c) // 如果第一个数大于第三个数,则交换它们的值{t = a;a = c;c = t;}if (b > c) // 如果第二个数大于第三个数,则交换它们的值{t = b;b = c;c = t;}printf("3个数按照从小到大排列为: %d %d %d\n", a, b, c); // 打印按照从小到大排列的三个数return 0;
}

运行结果:

输入:18 66 32

二、程序改错

程序中有错误,上机调试程序,修改有错误的语句行,并输出正确的运行结果。

修正后的代码:

#include <stdio.h>int main() 
{int x;printf("请输入一个整数: ");scanf("%d", &x);if (x % 3 == 0 && x % 5 == 0)printf("yes !\n");elseprintf("no !\n");return 0;
}

修改后的程序中,修复了以下错误:

1.在使用scanf函数接收用户输入时,修正了缺少&符号的问题。

2.在if语句中,修正了比较运算符应该使用==而不是=的问题。

运行结果:

输入:15

三、程序设计

编写一个程序实现这样的功能:商店卖软盘,每片定价3.5元,按购买的数量可给予如下的优惠:购买满100片,优惠5%;购买满200片,优惠6%;购买满300片,优惠8%;购买满400片,优惠10%;购买500片以上,优惠15%。根据不同的购买量,打印应付货款。(用switch语句编程

实现代码:

#include <stdio.h> int main ()
{int x;float y, total;printf("请输入软盘购买数量:");scanf ("%d", &x);if (x < 0){printf("你输入的值超出正常范围!");}else{switch (x / 100) {case 0:y = 0;break;case 1:y = 0.05;break;case 2:y = 0.06;break;case 3:y = 0.08;break;case 4:y = 0.10;break;default:y = 0.15;}total = 3.5 * x * (1 - y);printf("应付价钱=%0.2f\n", total);}return 0;
}

运行结果:

输入:500

代码思路:

1. 首先,定义了三个变量:x是购买软盘的数量,y是折扣率(浮点数),total是最终的应付价钱(浮点数)。

2. 代码通过printf函数打印出提示信息,要求用户输入购买数量。

3. 然后使用scanf函数将用户输入的值存储到变量x中。

4. 接下来,代码通过if-else语句进行条件判断。如果x小于0,表示输入的值超出了正常范围,那么代码会打印一条错误信息。如果x大于等于0,则进入else语句块。

5. 在else语句块中,通过switch语句根据x除以100的商的值来确定折扣率y的取值。根据不同的商值,将y设置为不同的折扣率。如果商值为0,表示购买数量小于100个,那么折扣率y为0;如果商值为1,表示购买数量在100到199之间,那么折扣率y为0.05,以此类推。如果商值超过4,则表示购买数量大于等于500个,折扣率y为0.15。

6. 计算最终的应付价钱,将结果存储到变量total中。计算公式为:total = 3.5 * x * (1 - y),其中3.5是每个软盘的价格。

7. 最后,使用printf函数打印出应付价钱的结果,保留两位小数。

8. 程序执行完毕,返回0表示正常结束。


总结

当涉及到对不同情况进行处理和判断时,C语言中常用的语言结构是选择结构。选择结构的关键就在于判断条件。根据判断的条件是否成立,程序会执行其中一个分支里面的代码。
C语言中有两种常用的选择结构:if-else和switch-case。if-else语句用于针对一个条件判断,当条件为真时执行一个代码块,否则执行另一个代码块。switch-case语句用于根据一个表达式的值,在同的情况下执行不同的代码块。

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

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

相关文章

[Linux] Tomcat

一、Tomcat相关知识 1.1 Tomcat的简介 Tomcat 是 Java 语言开发的&#xff0c;Tomcat 服务器是一个免费的开放源代码的 Web 应用服务器&#xff0c;是 Apache 软件基金会的 Jakarta 项目中的一个核心项目&#xff0c;由 Apache、Sun 和其他一些公司及个人共同开发而成。Tomc…

19.java绘图

A.Graphics类 Graphics类是java.awt包中的一个类&#xff0c;它用于在图形用户界面&#xff08;GUI&#xff09;或其他图形应用程序中进行绘制。该类通常与Component的paint方法一起使用&#xff0c;以在组件上进行绘制操作。 一些Graphics类的常见用法和方法&#xff1a; 在组…

Flask维护者:李辉

Flask维护者&#xff1a;李辉&#xff0c; 最近看b站的flask相关&#xff0c;发现了这个视频&#xff1a;[PyCon China 2023] 濒危 Flask 扩展拯救计划 - 李辉_哔哩哔哩_bilibili 李辉讲他在维护flask之余&#xff0c;开发了apiflask这个依托flask的框架。GitHub - apiflask/a…

如何通过 SSH 访问 VirtualBox 的虚机

VirtualBox 是一款免费虚机软件。在用户使用它安装了 linux 以后&#xff0c;它默认只提供了控制台的管理画面。 直接使用控制台管理 Linux 没有使用诸如 putty 或者 vscode 这样的 ssh 远程管理工具方便。那么可不可以直接使用 ssh 访问 VirtualBox 上的 Linux 呢&#xff1f…

【Spark精讲】Spark作业执行原理

基本流程 用户编写的Spark应用程序最开始都要初始化SparkContext。 用户编写的应用程序中&#xff0c;每执行一个action操作&#xff0c;就会触发一个job的执行&#xff0c;一个应用程序中可能会生成多个job执行。一个job如果存在宽依赖&#xff0c;会将shuffle前后划分成两个…

同时安装5.7和8.0版本的MySQL

MySQL57安装 下载mysql-5.7.38-winx64.msi&#xff0c;安装管理员身份进入到安装文件夹的bin目录下 如何以管理员身份进入D盘 D:cd D:\Programs\MySQL\MySQL Server 5.7\bin把my.ini复制到mysql5.7安装目录下后 初始化 把配置文件放在安装目录下后&#xff0c;初始化的时候会…

玻色量子袁为出席中国移动第四届科技周量子计算算法与应用分论坛

9月12日&#xff0c;中国移动第四届科技周“量子计算算法与应用”分论坛在北京成功举办&#xff0c;中国移动研究院院长黄宇红发表致辞&#xff0c;中国移动未来研究院院长崔春风全程主持。玻色量子作为光量子计算领域真机测试与场景应用的标杆企业应邀出席&#xff0c;玻色量子…

【Matlab】如何将二阶线性微分方程进行Laplace变换得到传递函数

二阶线性微分方程进行Laplace变换 前言正文代码实现 前言 二阶线性微分方程: 一个二阶线性微分方程通常可以写成如下形式: y ′ ′ ( t ) p ( t ) y ′ ( t ) q ( t ) y ( t ) f ( t ) y^{\prime \prime}(t)p(t) y^{\prime}(t)q(t) y(t)f(t) y′′(t)p(t)y′(t)q(t)y(t)f(…

sleep和wait区别,并且查看线程运行状态

一、sleep和wait区别 区别一&#xff1a;语法使用不同 wait 方法必须配合 synchronized 一起使用&#xff0c;不然在运行时就会抛出 IllegalMonitorStateException 的异常 而 sleep 可以单独使用&#xff0c;无需配合 synchronized 一起使用。 区别二&#xff1a;所属类不同…

掌握iText:轻松处理PDF文档-高级篇-添加水印

前言 iText作为一个功能强大、灵活且广泛应用的PDF处理工具&#xff0c;在实际项目中发挥着重要作用。通过这些文章&#xff0c;读者可以深入了解如何利用iText进行PDF的创建、编辑、加密和提取文本等操作&#xff0c;为日常开发工作提供了宝贵的参考和指导。 掌握iText&…

【Apollo】ubuntu20.04源码安装apollo8.0

官方源码安装教程 https://blog.csdn.net/weixin_45929038/article/details/120113008 安装NVIDIA GPU驱动 Apollo 8.0 的一些模块的编译和运行需要依赖 NVIDIA GPU 环境&#xff08;例如感知模块&#xff09;&#xff0c;如果有编译和运行这类模块的需求&#xff0c;则需要安…

蓝桥杯第一场强者挑战赛(C)SOSdp

之前在cf上面接触过SOSdp&#xff08;子集dp&#xff09;&#xff0c;这里就碰到了。 思路&#xff1a; 异或运算即非进位加法运算&#xff0c;因此如果需要进位的话&#xff0c;那么就无法满足题意&#xff0c;因此条件弱化为不需要进位&#xff0c;也就是不存在同一位上面都是…

多维时序 | Matlab实现GA-LSTM-Attention遗传算法优化长短期记忆神经网络融合注意力机制多变量时间序列预测

多维时序 | MATLAB实现BWO-CNN-BiGRU-Multihead-Attention多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实现BWO-CNN-BiGRU-Multihead-Attention多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | Matlab实…

Dubbo 的 go 语言实现迎来了 Dubbo3 版本

新版本的 dubbo-go: 全面升级 Triple 协议,兼容 gRPC、标准 HTTP 客户端,提供简单明了的 API 用于编写 RPC server 与 client,解决组件间的基本通信问题。 针对微服务场景,提供了完善的服务治理能力,这包括配置管理、可观测性、流量管控规则、生态集成与适配等的全面升级…

基于Python+WaveNet+MFCC+Tensorflow智能方言分类—深度学习算法应用(含全部工程源码)(一)

目录 前言引言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境Jupyter Notebook环境Pycharm 环境 相关其它博客工程源代码下载其它资料下载 前言 博主前段时间发布了一篇有关方言识别和分类模型训练的博客&#xff0c;在读者的反馈中发现许多小伙伴对方言…

Kubernetes(k8s)集群部署----->超详细

Kubernetes&#xff08;k8s&#xff09;集群部署-----&#xff1e;超详细 一、资源准备二、安装准备2.1 主机环境设置2.1.1 关闭操作系统防火墙、selinux2.1.2 关闭swap交换分区2.1.3 允许iptables检测桥接流量&#xff08;可选&#xff09; 2.2 安装Docker环境2.3 安装Kubeadm…

idea__SpringBoot微服务10——整合JDBC(新依赖)

整合JDBC 完整项目地址&#xff1a;一、创建一个项目二、idea配置连接mysql三、创建yaml数据库连接配置文件四、测试一下&#xff0c;没有问题五、增删改查————————创作不易&#xff0c;如觉不错&#xff0c;随手点赞&#xff0c;关注&#xff0c;收藏(*&#xffe3;︶…

CS110L 系统编程安全 笔记

用户向程序输入数据&#xff0c;程序分析数据&#xff0c;但是当用户的输入大于缓冲区长度时&#xff0c;数据会溢出&#xff0c;覆盖掉内存中其他内容&#xff0c;比如函数返回地址&#xff0c;从而可能导致程序返回到错误的地址执行了不安全的程序&#xff08;远程代码执行&a…

MySQL笔记-第10章_创建和管理表

视频链接&#xff1a;【MySQL数据库入门到大牛&#xff0c;mysql安装到优化&#xff0c;百科全书级&#xff0c;全网天花板】 文章目录 第10章_创建和管理表1. 基础知识1.1 一条数据存储的过程1.2 标识符命名规则1.3 MySQL中的数据类型 2. 创建和管理数据库2.1 创建数据库2.2 使…

Xcode编译速度慢是什么原因?如何提高编译速度?

Hello各位伙伴们好&#xff0c;我是咕噜铁蛋&#xff01;作为一个开发者&#xff0c;我们都希望能够高效地开发应用程序&#xff0c;而编译速度是影响开发效率的重要因素之一。然而&#xff0c;有时候我们会发现在使用 Xcode 进行开发时&#xff0c;编译速度非常慢&#xff0c;…