使用while循环解决分段提成问题

本文最后更新于:1 个月前

使用while循环解决分段提成问题

今天C语言上机课有小可爱问到下面的编程问题,需求如下: # 上机实训 5-20 实训5-20 企业发放的奖金根据利润提成。其基本规定是:

  • 利润低于10万元的奖金 可提10% ;
  • 高于等于10万元而低于等于20万元的,其低于10万元的将按10%提成,高于10万元的将按7.5%提成;
  • 对高于20万低于等于40万的,其高于20万的部分按5%提成;对高于40万而低于等于60万的,其高于40万的部分按3%提成;
  • 高于60万低于等于 100万时,其高于60万部分按1. 5%提成;
  • 对高于100万的,超过100万部分按1%提成。

试从键盘输人当月利润并计算奖金总额。


看完这个题目第一感觉是非常容易的,上if判断语句完事儿. 结果当看到实验报告要求让用循环语句写时当场懵逼傻眼,直接给我整不会了. 迫于“压力”,下课后晚饭都舍不得吃,使用Python完成了程序的实现.

Python源码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 开发者:    Leo 刘
# 开发环境: macOs Big Sur
# 开发时间: 2021/11/4 5:51 下午
# 邮箱 : 517093978@qq.com
# @Software: PyCharm
# ----------------------------------------------------------------------------------------------------------
profit = float(input('利润提成金额(万元):'))
bonus = 0 # 奖金
judge = 10 # 步长
item = 0
rate = 0.1 # 提成率
while profit > judge:
bonus = bonus + judge * rate
profit = profit - judge
item += 1
if item == 0:
rate = 0.1
if item == 1:
rate = 0.075
if item == 2 or item == 3:
rate = 0.05
if item == 4 or item == 5:
rate = 0.03
if item == 6 or item == 7 or item == 8 or item == 9:
rate = 0.015
if item >= 10:
rate = 0.01
bonus = bonus + profit * rate
print('奖金总额为:%.4f 万元' % bonus)

程序测试结果如下:
1
2
利润提成金额(万元):6
奖金总额为:0.6000 万元
1
2
利润提成金额(万元):16
奖金总额为:1.4500 万元
1
2
利润提成金额(万元):26
奖金总额为:2.0500 万元
1
2
利润提成金额(万元):36
奖金总额为:2.5500 万元
1
2
利润提成金额(万元):46
奖金总额为:2.9300 万元
1
2
利润提成金额(万元):56
奖金总额为:3.2300 万元
1
2
利润提成金额(万元):66
奖金总额为:3.4400 万元
1
2
利润提成金额(万元):76
奖金总额为:3.5900 万元
1
2
利润提成金额(万元):86
奖金总额为:3.7400 万元
1
2
利润提成金额(万元):96
奖金总额为:3.8900 万元
1
2
利润提成金额(万元):106
奖金总额为:4.0100 万元
1
2
利润提成金额(万元):206
奖金总额为:5.0100 万元
> 注意: 由于时间原因(赶着去上课)本文仅提供Python代码,如需要C语言代码,仅需要修改对应的输入输出语句并匹配C语言程序格式即可. > > 此程序仍然使用了while语句和if语句,暂未实现仅使用单个while完成程序要求.