临近国庆,小学期兴趣选修课结课时有一位朋友做C语言的结课作业时遇到了困难请教我,话不多说,先把题目贴上来:

程序设计题:薪水是上班族最关心的问题,对于即将步入社会的我们也同样重要,毕业后找到一份高薪的工作不但能让家人放心,而且能够提升自己和家人的生活质量。每个人都想拿到更高的薪水,这就需要我们拥有强大的工作能力了。已知某公司有一批销售员工,其底薪为2000元,员工销售额与提成比例如下:
(1)当销售额<=3000时,没有提成;
(2)当3000<销售额<=7000时,提成10%;
(3)当7000<销售额<=10000时,提成15%;
(4)当销售额>10000是,提成20%。
要求利用switch语句编写程序,通过输入员工的销售额,计算出其薪水总额并输出到屏幕上。

刚打眼时觉得这就是一道很普通的题目,通过比较数据大小划定区间,用if语句肯定很好做,但题目要求使用switch语句,也就没多想,上手时才发现好像没学过switch语句怎样做范围的比较,在网上搜了搜,但找到的都是类似于用switch划定成绩等级的语句,具体如下:

#include <stdio.h>
int main()
{double score;int nKey;while (scanf_s("%lf", &score) == 1){if (score < 0 || score > 100){printf("请输入0-100范围内的分数\n");continue;}nKey = (int)score / 10;switch (nKey){case 0:case 1:case 2:case 3:case 4:case 5:printf("E\n");break;case 6:printf("D\n");break;case 7:printf("C\n");break;case 8:printf("B\n");break;case 9:case 10:printf("A\n");break;default:break;}}return 0;
}
————————————————
版权声明:本文为CSDN博主「aaronymhe」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yi_ming_he/article/details/71159449

百度知道里的一些讨论也没有关于这个问题的解决方案,于是我就按照这样的方法,做出了一个简单的程序:

int main()
{int num;float slary;printf("请输入月销售额:\n");scanf("%d",&num);switch(num/1000){    case 1:slary=2000+0.0*num;break; case 2:slary=2000+0.0*num;break; case 3:slary=2000+0.0*num;break; case 4:slary=2000+0.1*num;break;case 5:slary=2000+0.1*num;break; case 6:slary=2000+0.1*num;break;  case 7:slary=2000+0.1*num;break; case 8:slary=2000+0.1*num;break; case 9:slary=2000+0.1*num;break;     case 10:slary=2000+0.2*num;break;   }printf("应发工资为%.2f元",slary);return 0;

当时心急,这个方法完成了题目要求的输入输出实例,我就给他发过去了。次日脑海里一直在回想这道题,于是回到寝室又想了一遍,优化了一下,算是用我目前能够到的水平,解决了这个问题,代码如下,请各位大神指点:

#include <stdio.h>
int main()
{int num,flag;float slary;printf("请输入月销售额:\n");scanf("%d",&num);if(num<2000||num==2000)flag=1;else if(num>2000||num<7000||num==7000)flag=2;else if(num>7000||num<10000||num==10000)flag=3;else if(num>10000||num==10000)flag=4;switch(flag){    case 1:slary=2000;break; case 2:slary=2000+0.1*num;break; case 3:slary=2000+0.15*num;break; case 4:slary=2000+0.2*num;break;}printf("应发工资为%.2f元",slary);return 0;
}

如果评论区有大神可以指点switch语句的去其他用法,烦请指点一二,小生在此抱拳谢过了。

C语言中Switch语句的范围比较解决方案(学习笔记)相关推荐

  1. c语言switch语句支持的字符有哪些,C语言中switch()语句的括号内可以是什么型别的呢?...

    C语言中switch()语句的括号内可以是什么型别的呢?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言中swit ...

  2. c语言switch语句最大嵌套数,浅谈C语言中switch 语句的嵌套使用

    浅谈C语言中switch 语句的嵌套使用 作者:未知 [摘要]switch语句是一种分支控制语句,它的应用在程序设计中起至了很重要的作用.由于其格式复杂,对于初学者来说很难掌握,switch语句的嵌套 ...

  3. c语言switch语句嵌套,浅谈c语言中switch语句的嵌套使用

    switch语句是一种分支控制语句,它的应用在程序设计中起到了很重要的作用.由于其格式复杂,对于初学者来说很难掌握,switch语句的嵌套使用更是让初学者难以理解.本文通过介绍switch嵌套语句的形 ...

  4. c语言中switch语句流程图_全国计算机二级知识点汇总(C语言等)

    点击蓝字 关注我们 全国计算机二级知识点汇总 算法的有穷性是指:算法程序的运行时间是有限的 算法的空间复杂度是指:算法在执行过程中所需要的临时工作单元数 算法的时间复杂度是指:算法在执行过程中所需要的 ...

  5. c语言switch不允许实型,C语言中switch语句什么意思

    Switch在C语言中是保留字,其作用是进行判断选择.switch(开关语句)常和case break default一起使用. Switch用在编程中,如C语言中它经常跟Case一起使用,是一个判断 ...

  6. c语言中switch语句流程图_C语言:C语言保留字(关键字)

    保留字(reserved word) 保留字又称关键字. 指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用. 每种程序设计语言都规定了自己的一套保留字. 例如:BASIC语言规 ...

  7. c语言中switch结构,switch结构c语言

    C语言中switch结构的使用 用switch结构编制程序,输入1个学生的C语言课程考试成绩(百分制整形数因为case后面不能接范围,也就是说case后面是一个确实固定的常量.用下面的方法比较好, # ...

  8. C语言switch中break的作用,C语言中switch...case语句中break的重要性

    在C语言中switch...case语句是经常用到的,下面我介绍一下在使用该语句时候需要注意的一个细节问题.话不多说,直接举例子: 例子1: switch(fruit) { case 1:printf ...

  9. c语言 case break,C语言中switch...case语句中break的重要性

    在C语言中switch...case语句是经常用到的,下面我介绍一下在使用该语句时候需要注意的一个细节问题.话不多说,直接举例子: 例子1: switch(fruit) { case 1:printf ...

最新文章

  1. Ubuntu16.04 搭建nexus 私服 学习步骤以及安装maven和git
  2. BannerDemo【图片轮播图控件】
  3. 【Linux 内核】进程管理 task_struct 结构体 ② ( state 字段 | stack 字段 | pid 字段 | tgid 字段 | pid_links 字段 )
  4. 【知识星球】剪枝量化初完结,蒸馏学习又上线
  5. Ibatis - Open quote is expected for attribute {1} associated with an element type '
  6. numpy统计分布显示
  7. php中页面平滑回到顶部代码,原生JS实现平滑回到顶部组件
  8. 客户端父进程提前死亡
  9. 1088红包数字代表什么_微信发红包的数字含义?各种红包代表着什么,你有没有发错呢?...
  10. oracle 混合分区表,Oracle 19C Hybrid partitioned tables混合分区表
  11. 汽车电子测试相关名词解释
  12. 微软2023届秋季校园招聘 | 内推名额等待优秀的你
  13. 【5G核心网】5GC核心网之网元AUSF
  14. 运动无线耳机哪款不容易掉、最不容易脱落的蓝牙耳机推荐
  15. mysql数据库中吧时分秒换算成秒的函数TIME_TO_SEC()
  16. docker中各ID之间的关系和计算(二)-layerID-diffID-chainID-cacheID的计算
  17. 行列式的拉普拉斯展开定理_如何证明行列式的拉普拉斯定理?
  18. ICC---data setup
  19. java基础--Java入门
  20. 运维日常之机房浪潮服务器硬盘红灯亮起,服务器一直响,raid磁盘红色。。。故障解决方法

热门文章

  1. word流程图怎么做虚线框_如何在visio中画虚线框以及将visio图形复制到word文档
  2. Java Swing去掉按钮(JButton)中文字周围的虚线框
  3. Python 为什么这么慢?
  4. win10神州网信V2022版本,登录微软账号
  5. Apache Kylin踩坑记
  6. “爱心帮”APP走进厦门高校
  7. Flink入门技术分享PPT之一
  8. 跟风式、炒作式、跨业式三类创业者最容易挂掉
  9. 用neo4j导入protege创建的本体owl文件(以及前缀消除)
  10. seo优化后多久能够看见效果