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

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.mrgr.cn/news/64411.html

相关文章:

  • 【Flask】四、flask连接并操作数据库
  • PostgreSQL技术内幕17:PG分区表
  • 梦境2(又来写小说啦)
  • Android——横屏竖屏
  • DNF 主从服务器的搭建
  • Python绘制爱心
  • 2024年系统架构师---下午题目真题
  • php开发实战分析(8):优化MySQL分页查询与数量统计,提升数据库性能
  • sql在hive和阿里云maxComputer的区别
  • 合并区间 leetcode56
  • 【云备份项目】json以及jsoncpp库的使用
  • 在Zetero中调用腾讯云API的输入密钥的问题
  • 快速上手 Windows 命令:简化你的工作流程
  • tauri开发中如果取消了默认的菜单项,复制黏贴撤销等功能也就没有了,解决办法
  • Oracle OCP认证考试考点详解082系列09
  • 【数据结构与算法】第8课—数据结构之二叉树(堆)
  • SQL查询 join的用法
  • sv标准研读第二十章-系统函数与系统任务
  • 【高等数学】3-2多元函数积分学
  • 计算机网络——TCP拥塞控制原理
  • 基于BP神经网络的手写体数字图像识别
  • 图文深入介绍Oracle DB link(三)
  • 【传知代码】用于图像识别的判别图正则化技术
  • nginx上传文件超过限制大小、响应超时、反向代理请求超时等问题解决
  • [HNCTF 2022 Week1]calc_jail_beginner_level3(JAIL)
  • 产品定义和独开分类