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

P3-2.【结构化程序设计】第二节——知识要点:多分支选择语句

讲解视频:

P3-2.【结构化程序设计】第二节——知识要点:多分支选择语句

知识要点:多分支选择语句

一、任务分析

已知某公司员工的保底薪水为500,某月销售商品的利润profit(整数)与利润提成的关系如下(单位:元):

profit<1000            没有提成

1000≤profit<2000      提成10%

2000≤profit<5000      提成15%

5000≤profit<10000     提成20%

10000≤profit           提成25%

要求输入某员工某月的销售利润,输出该员工的实领薪水。

本任务涉及到多分支结构,可以用if语句的嵌套来实现,也可以用swith语句实现。

二、必备知识与理论

1.用if语句实现多分支选择

说明:在嵌套的if语句中,如果if和else的个数不一致,C语言规定:else总是与最近的if语句配对。也可以加花括号来确定配对关系。

2.switch语句

上面的符号函数只有3个分支,如果分支较多,嵌套的if语句层数就多,程序冗长且可读性降低。C语言提供的switch语句可以直接处理多分支选择,并且switch语句条理清楚,结构明了。它的格式如下:

switch(表达式)

{

 case 常量表达式1:语句1;

case 常量表达式2:语句2;

    

case 常量表达式n:语句n;

[default:语句n+1;]

}

执行流程:先计算表达式的值,如果其值与哪个常量表达式的值相匹配,就执行哪个case后面的语句;如果表达式的值与任何一个case后面的常量表达式的值都不相同,当有default子句时,则执行default后面的执行语句;如果没有default子句,则程序直接跳出switch语句。

三、任务实施

本任务涉及到多分支结构,可以用if语句的嵌套来实现,也可以用swith语句实现。

方法一:用if语句的嵌套编写程序。

程序代码如下:

#include<stdio.h>
#define B 500
main()
{
int prot,n;
float salary;
printf("please input profit:");
scanf("%d",&prot);
if(prot<1000)
  salary=B;
else if(prot<2000)
        salary=B+prot*0.1;
     else if(prot<5000)
             salary=B+prot*0.15;
          else if(prot<10000)
                  salary=B+prot*0.2;
               else salary=B+prot*0.25;
printf("实领薪水:%.2f\n",salary);
}

方法二:用switch语句编写程序。

分析:(1) switch后面括号内的表达式应有一个确定的值以便与case后的常量表达式的值相匹配,多个case语句可以共用一组执行语句,设n=prot/1000,得一个整数商,则

case 2:

case 3:

case 4: salary=B+prot*0.15

    (2) 因为case语句的执行规则是找到一个入口后顺序执行后面的语句,每一个员工的工资只有一个计算标准,按照一个标准计算之后其他语句不必再执行,所以需要用break语句来结束switch结构。

程序代码如下:

#include<stdio.h>
#define B 500
main()
{
int prot,n;
float salary;
printf("please input profit:");
scanf("%d",&prot);
n=prot/1000;
switch(n)
{
case 0:salary=B;break;
case 1:salary=B+prot*0.1;break;
case 2:
case 3:
case 4:salary=B+prot*0.15;break;
case 5:
case 6:
case 7:
case 8:
case 9:salary=B+prot*0.2;break;
default:salary=B+prot*0.25;
}
printf("实领薪水:%.2f\n",salary);
}

四、深入训练  

1. 从键盘输入任意字符,判断是字母、数字还是其它字符。

提示:(1)ch>='A'&& ch<='Z'|| ch>='a'&& ch<='z'为字母字符。

(2)ch>='0'&& ch<='9'为数字字符。

(3)否则为其它字符。

本程序可用嵌套的if else语句实现。

2.输入两个数字及运算符(+、-、*、/),输出其运算结果。

提示:(1)当除数b为0时,输出必要的信息提示。

(2)运算符op定义为字符型,如果输入(+、-、*、/)之外的字符,显示信息提示。


http://www.kler.cn/a/376601.html

相关文章:

  • RL学习笔记-表格型方法
  • 车载软件架构 --- 智能汽车软件
  • matlab实现了基于移动可变形组件(Moving Morphable Components,MMC)的拓扑优化算法
  • 网络请求优化:理论与实践
  • 关于函数指针的一些例子说明
  • C++之位算法
  • 详解ARM64可执行程序的生成过程
  • 猫头虎分享Python 编码转换库:处理 JSONL 编码格式转换的最佳实践
  • 如何压缩pdf文件的大小?5分钟压缩pdf的方法推荐
  • kubeadm安装k8s
  • 计算机网络-总线型以太网(ethernet)-知识点小结
  • 基于STM32的智能宠物喂食系统设计
  • Discuz中的关键全局变量`$_G`
  • 快速上手 Windows 命令:简化你的工作流程
  • xlrd.biffh.XLRDError: Excel xlsx file; not supported
  • 你真的了解Canvas吗--解密十三【ZRender篇】
  • 简单了解前缀树/字典树(Trie树)C++代码
  • 三维重建:AI 根据图像信息还原物体三维形状的技术
  • postgresql14源码编译安装
  • 使用AMD GPU和ONNX Runtime高效生成图像与Stable Diffusion模型
  • 【前端】在 Next.js 开发服务器中应该如何配置 HTTPS?
  • 【前端】项目中遇到的问题汇总(长期更新)
  • 【Java】方法的使用 —— 语法要求、方法的重载和签名、方法递归
  • 无源元器件-磁珠选型参数总结
  • 基于vue框架的的考研网上辅导系统ao9z7(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • 复习回顾计划-vue篇