企业发放的奖金根据利润提成,用switch语句实现。 利润i低于(含等于)100 000元的,奖金可提10%;利润高于100 000元,低于(含等于)200 000元时,低于100 000的部分按10%提成,高于100 000元的部分,可提成7.5%;当200 000 < i ≤ 400 000时,低于200 000元的部分仍按上述办法提成(下同),高于200 000的部分按5%提成;当400 000 < i ≤ 600 000时,高于400 000的部分按3%提成;当600 000 < i ≤ 1000000时,高于600 000的部分按1.5%提成;当 i > 1000 000时,超过1000 000的部分按1%提成。从键盘输入当月利润i,求应发奖金总数。
时间: 2023-05-31 20:19:00 浏览: 185
### 回答1:
题目描述:
公司发放的奖金根据利润提成,用 switch 语句实现。利润 (i) 低于等于 100 000 元时,奖金可提 10%;利润高于 100 000 元,低于等于 200 000 元时,高于 100 000 元的部分奖金可提成 7.5%;200 000 元以上时,高于 200 000 元的部分按 5% 提成。输入当月利润 i,输出应发奖金总数。
思路:
通过 switch 语句判断利润的区间,然后根据相应公式计算出应发奖金总数。
代码示例:
利润 i 的数值由键盘输入,求应发奖金总数:
```python
i = int(input("当月利润为:"))
bonus = 0
# 利润低于等于 100000 元时
if i <= 100000:
bonus = i * 0.1
# 利润高于 100000 元,低于等于 200000 元时
elif 100000 < i <= 200000:
bonus = 100000 * 0.1 + (i - 100000) * 0.075
# 利润高于 200000 元时
elif i > 200000:
bonus = 100000 * 0.1 + 100000 * 0.075 + (i - 200000) * 0.05
print("应发奖金总数为:", bonus)
```
### 回答2:
题目要求通过switch语句实现根据利润提成奖金。因此,我们可以按照题目给出的条件,用switch语句进行判断,最终计算出应发奖金总数。下面是一种可能的代码实现:
```
#include <stdio.h>
int main() {
float i, bonus = 0;
printf("请输入当月利润:");
scanf("%f", &i);
switch ((int)(i / 100000)) {
case 0:
bonus = i * 0.1;
break;
case 1:
bonus = 100000 * 0.1 + (i - 100000) * 0.075;
break;
case 2:
case 3:
bonus = 100000 * 0.1 + 100000 * 0.075 + (i - 200000) * 0.05;
break;
case 4:
case 5:
bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (i - 400000) * 0.03;
break;
case 6:
case 7:
case 8:
case 9:
bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (i - 600000) * 0.015;
break;
default:
bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (i - 1000000) * 0.01;
break;
}
printf("应发奖金总数为:%.2f元\n", bonus);
return 0;
}
```
首先,我们定义了两个变量i和bonus,其中i表示当月利润,bonus表示应发奖金总数。
然后,我们通过scanf函数从键盘输入当月利润。
接下来,我们使用switch语句对利润进行分段,根据利润的不同范围计算出应发奖金总数。例如,当利润不超过100000元时,奖金可提10%;当利润在100000元到200000元之间时,低于100000元的部分按10%提成,高于100000元的部分可提成7.5%……以此类推。最终,我们将计算出的应发奖金总数赋值给变量bonus。
最后,我们使用printf函数将应发奖金总数输出到屏幕上,保留两位小数。
### 回答3:
首先,我们需要了解一下 switch 语句的语法结构,它由一系列 case 语句组成,每个 case 后面跟着一个常量或常量表达式。当 switch 后面的表达式的值与某个 case 语句后面的常量或常量表达式的值相等时,就会执行该 case 语句中的代码块。每个 case 语句结束后都要加上 break 关键字,防止程序继续执行下一个 case 语句中的代码块。如果没有匹配到任何一个 case 语句,就会执行 default 语句中的代码块,但是 default 语句可以省略。
在本题中,我们可以利用 switch 语句来判断利润 i 的范围,并计算出应当发放的奖金总数。具体的代码实现如下:
```c++
#include <iostream>
using namespace std;
int main() {
double i, bonus = 0; // 利润和奖金都是浮点数
cout << "请输入当月利润(万元):";
cin >> i;
switch ((int)i / 100000) { // 利用强制类型转换将利润转为整数,再除以 100000
case 0:
bonus = i * 0.1; // 利润在 0~100000 范围内,按 10% 发放奖金
break;
case 1:
bonus = 100000 * 0.1 + (i - 100000) * 0.075; // 利润在 100000~200000 范围内,按题目要求计算奖金
break;
case 2:
case 3:
bonus = 100000 * 0.1 + 100000 * 0.075 + (i - 200000) * 0.05; // 利润在 200000~400000 范围内,按题目要求计算奖金
break;
case 4:
case 5:
bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (i - 400000) * 0.03; // 利润在 400000~600000 范围内,按题目要求计算奖金
break;
case 6:
case 7:
case 8:
case 9:
bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (i - 600000) * 0.015; // 利润在 600000~1000000 范围内,按题目要求计算奖金
break;
default:
bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (i - 1000000) * 0.01; // 利润超过 1000000 范围,按题目要求计算奖金
break;
}
cout << "应发奖金总数:" << bonus << "万元" << endl;
return 0;
}
```
我们先定义两个浮点型变量 i 和 bonus,前者用来存储从键盘输入的当月利润,后者用来存储应当发放的奖金总数。然后,利用 cout 和 cin 语句来分别输出提示信息和接收用户输入的当月利润。接下来,利用 switch 语句来根据不同的利润范围计算奖金,最后输出应发奖金总数即可。如果您想要精确到小数点后两位,可以使用 printf 或者 setprecision 来控制输出格式。
阅读全文