习题 4.10 企业发放的奖金根据利润提成。。。
感谢 @墨瑾空城染青衣 提出的错误地方,现已修改。
C程序设计(第四版) 谭浩强 习题4.10 个人设计
习题 4.10 企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提0.1;利润高于100000元,低于200000(100000《I《=200000)时,低于100000元的部分按10%提成,高于100000元的部分,可提成7.5%;200000《I《=400000时,低于200000元的部分仍按上述办法提成(下同)。高于200000元的部分按5%提成;400000《I《=600000元时,高于400000元的部分按3%提成;600000《I《=1000000时,高于600000元的部分按1.5%提成;I>1000000时,超过1000000元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数。
要求:
(1)用if语句编程序;
(2)用switch语句编程序。
代码块:
方法1:(用if语句)
#include <stdio.h>
#include <stdlib.h>
int main()
{double i, bonus;printf("Please enter profit: ");scanf("%lf", &i);//输入低于0的数字,报错并重新输入while (i < 0){printf("Error!\n");printf("Please enter profit: ");scanf("%lf", &i);}if (i <= 100000)bonus = i * 0.1;else if (i > 100000 && i <= 200000)bonus = 10000 + (i - 100000) * 0.075;else if (i > 200000&& i <= 400000)bonus = 18500 + (i - 200000) * 0.05;else if (i > 400000 && i <= 600000)bonus = 37500 + (i - 400000) * 0.03;else if (i > 600000 && i <= 1000000)bonus = 43500 + (i - 600000) * 0.015;elsebonus = 49500 + (i - 1000000) * 0.01;printf("Bonus = %.2lf\n", bonus);system("pause");return 0;
}
方法2:(用switch语句)
#include <stdio.h>
#include <stdlib.h>
int main()
{int i, s;double bonus;printf("Please enter profit: ");scanf("%d", &i);while (i < 0){printf("Error!\n");printf("Please enter profit: ");scanf("%d", &i);}//通过分档给各档级别赋值if (i <= 100000)s = 1; else if (i > 100000 && i <= 200000)s = 2;else if (i > 200000 && i <= 400000)s = 3;else if (i > 400000 && i <= 600000)s = 4;else if (i > 600000 && i <= 1000000)s = 5;elses = 6;//根据级别值执行相应语句switch(s){case 1: bonus = i * 0.1; break;8case 2: bonus = 10000 + (i - 100000) * 0.075; break;case 3: bonus = 18500 + (i - 200000) * 0.05; break;case 4: bonus = 37500 + (i - 400000) * 0.03; break;case 5: bonus = 43500 + (i - 600000) * 0.015; break;case 6: bonus = 49500 + (i - 1000000) * 0.01; break;}printf("Bonus = %.2lf\n", bonus);system("pause");return 0;
}
以上特别说明一下,如果按照教材上的switch实例,使用相同方法,比如通过定义一个s,使得s=i/100000,用switch(s)来实现分档,前两档是没有问题的,但是,在输入600000和1000000两个数值后,就会出现得到错误的分档结果。
方法3:(利用函数的模块化设计)
#include <stdio.h>
#include <stdlib.h>
void input(); //定义输入函数
void bonus(int x); //定义奖金计算函数
int i; //定义全局变量,利润
int main()
{input(); //调用输入函数bonus(i); //调用奖金计算函数system("pause");return 0;
}
//输入函数
void input()
{printf("Please enter profit: ");scanf("%d", &i);//一旦出现负值,报错并重新输入while (i < 0){printf("Error!\n");input();}
}
//奖金计算函数
void bonus(int x)
{int s;double bonus;if (x <= 100000)s = 1; else if (x > 100000 && i <= 200000)s = 2;else if (x > 200000 && i <= 400000)s = 3;else if (x > 400000 && i <= 600000)s = 4;else if (x > 600000 && i <= 1000000)s = 5;elses = 6;switch(s){case 1: bonus = x * 0.1; break;case 2: bonus = 10000 + (x - 100000) * 0.075; break;case 3: bonus = 18500 + (x - 200000) * 0.05; break;case 4: bonus = 37500 + (x - 400000) * 0.03; break;case 5: bonus = 43500 + (x - 600000) * 0.015; break;case 6: bonus = 49500 + (x - 1000000) * 0.01; break;}printf("Bonus = %.2lf\n", bonus);
}
习题 4.10 企业发放的奖金根据利润提成。。。相关推荐
- C语言学习之企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提成10%;
企业发放的奖金根据利润提成.利润I低于或等于100000元的,奖金可提成10%;利润高于100 000元,低于200 000元(100 000<I≤200000)时,低于100 000元的部分按 ...
- 用java编写奖金税率_企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%_java企业利润提成计算代码...
今天上java课程的时候老师给布置了一个作业,让让java计算一下企业该发放的奖金总额,接下来吾爱编程就为大家介绍一下java实现企业发放的奖金根据利润提成的代码,有需要的小伙伴可以参考一下: 1.题 ...
- 2. 企业发放的奖金根据利润提成. 利润(I)低于或等于10万元时, 奖金可提10%;利润高于10万元, 低于20万元时, 低于10万元的部分按10%提成,...
程序算法精题–JS版 企业发放的奖金根据利润提成. 利润(I)低于或等于10万元时, 奖金可提10%;利润高于10万元,低于20万元时, 低于10万元的部分按10%提成, 高于10万元的部分, 可提成 ...
- 企业发放的奖金根据利润提成。利润I低于或等于100000元的,奖金可提10%;利润高于100000元,低于或等于200000元
企业发放的奖金根据利润提成.利润I低于或等于100000元的,奖金可提10%:利润高于100000元,低于或等于200000元(100000<I≤200000)时,低于或等于100000元的部分 ...
- 企业发放的奖金根据利润提成。 利润(i)低于或等于10万元时,奖金可提10%; 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%; 2
.企业发放的奖金根据利润提成. 利润(i)低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%: 20 ...
- C语言练习题:企业发放的奖金根据利润提成。利润 I 低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成
企业发放的奖金根据利润提成. 利润 I 低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时,低于10万元的部分按10%提成, 高于10万元的部分,可提成7.5%: 20万到40万 ...
- C/C++ 企业发放的奖金根据利润提成。利润 (i) 低于或等于 10 万元时,奖金可提 10% ;利润高 于 10 万元,低于 20 万元时,低于 10 万元的部分按 10% 提成,高于 10 万元
目录 一.结果演示 二.源代码 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门 零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 ...
- 2.企业发放的奖金根据利润提成。①利润低于或等于10万元时,奖金可提10%;② 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成 7.5%;
题目: 企业发放的奖金根据利润提成. ①利润低于或等于10万元时,奖金可提10%: ② 利润高于10万元,低于20万元时,低于10 万元的部分按10%提成,高于10万元的部分, 可提成 7.5%: ③ ...
- 【题目】企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5
文件名:[作业] 作者:〈漆黑〉 描述:〈 企业发放的奖金根据利润提成. 利润(I)低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万 ...
最新文章
- pyQt 每日一练习 -- 登录框
- shell 语法简介(转载)
- 树莓派 ROS 段错误
- 正面管教PHP交流互助会,父母的心态决定孩子的状态/慧育家正面管教家长讲师认证班...
- java语言只保留了什么_java语言的保留的关键字【小白必读】
- JZOJ 5396. 【NOIP2017提高A组模拟10.6】Blocks
- SAP Cloud SDK‘s Virtual Data Model
- mysql练习_创建库与列表、增加列表信息、列表查询(包含多列表查询)_月隐学python第23课
- leetcode134. 加油站
- bLue的除法算术题 数学
- q超级会员都有什么鸿蒙,超级会员+豪华绿钻,超值四开!
- 【转】做一名开源社区的扫地僧 (上)
- handbrake下载太慢_handbrake使用教程
- Pdf2cad v12(顶级pdf转cad软件)官方正式版V12.2020.12 | pdf转cad软件中文版下载 | 比pdf2cadv9更强
- 设计模式总结(Java)
- 免开发打造智能咖啡机,让您省时又省力
- 大数据学习之HBase入门笔记
- linux文件损坏怎么修复工具,在Ubuntu操作系统下修复损坏程序包的三种办法
- ENVI中出现tif文件无法直接打开
- 划时代变革丨山石网科重磅发布A系列智能下一代防火墙 重新定义边界安全