企业发放的奖金根据利润提成,用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-15 11:08:10 浏览: 65
抱歉,您的问题不太明确,请问您想问什么?如果您是想问什么是 null,那么 null 是一个表示空值或者不存在的值的特殊关键字。在编程中,null 通常用于表示一个变量没有被赋值或者一个对象没有被实例化。
相关问题
企业发放的奖金根据利润提成,用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,求应发奖金总数。
### 回答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 来控制输出格式。
企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万(100000<i<=200000)元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;200000<i<=400000时,高于20万元的部分按5%提成;400000<i<=600000时,高于40万元的部分按3%提成;600000<i<=1000000时,高于60万的部分按1.5%提成;i>1000000时,超过100万的部分按1%提成。从键盘输入当月利润i,求应发放奖金总数。要求:用switch语句编程序实现。
### 回答1:
以下是用switch语句编写的程序:
#include <stdio.h>
int main()
{
double i, bonus;
printf("请输入当月利润:");
scanf("%lf", &i);
switch ((int)(i / 100000))
{
case :
bonus = i * .1;
break;
case 1:
bonus = 10000 + (i - 100000) * .075;
break;
case 2:
case 3:
bonus = 17500 + (i - 200000) * .05;
break;
case 4:
case 5:
bonus = 27500 + (i - 400000) * .03;
break;
case 6:
case 7:
case 8:
case 9:
bonus = 33500 + (i - 600000) * .015;
break;
default:
bonus = 39500 + (i - 100000) * .01;
break;
}
printf("应发放奖金总数为:%.2lf元\n", bonus);
return ;
}
程序中,先从键盘输入当月利润i,然后根据利润的不同范围,使用switch语句计算出应发放的奖金总数bonus。最后输出结果。
### 回答2:
以下是使用switch语句编写的计算奖金的程序:
```
#include <stdio.h>
int main() {
double i, bonus;
printf("请输入当月利润:");
scanf("%lf", &i);
switch ((int)(i / 100000)) {
case 0: //低于或等于10万元
bonus = i * 0.1;
break;
case 1: //10万元<i<=20万元
bonus = 100000 * 0.1 + (i - 100000) * 0.075;
break;
case 2: //20万元<i<=40万元
case 3: //40万元<i<=60万元
case 4: //60万元<i<=100万元
bonus = 100000 * 0.1 + 100000 * 0.075 + (i - 200000) * 0.05;
if (i > 400000) {
bonus += (i - 400000) * 0.03;
}
if (i > 600000) {
bonus += (i - 600000) * 0.015;
}
break;
default: //i>100万元
bonus = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05;
bonus += 200000 * 0.03 + 400000 * 0.015 + (i - 1000000) * 0.01;
break;
}
printf("应发放奖金总数为:%lf元\n", bonus);
return 0;
}
```
该程序首先提示用户输入当月利润i,然后根据利润的范围使用switch语句计算奖金总数,并将结果输出。
在switch语句中,我们使用了整数除法将i转换为一个整数,代表它所处的利润范围。然后根据范围依次计算奖金,注意要使用累加的方式处理不同范围的奖金。
程序中对使用整数除法进行转换的思路值得一提,可以避免在分支语句中使用浮点数进行比较和计算的不确定性。同时,由于switch语句的分支条件只支持整数和字符类型,我们必须将i转换为整数后才能进行判断。值得注意的是,我们在最后一个分支条件中并没有使用break语句,这是因为它是default分支,代表了i>100万元时的情况,我们需要计算所有的奖金,并不需要跳出分支语句。
### 回答3:
switch语句可用于根据不同的条件执行不同的语句。
根据题目要求,可编写如下程序:
#include <stdio.h>
int main()
{
double i, bonus;
printf("请输入月利润:");
scanf("%lf", &i);
switch((int)(i/100000)) //将利润按十万为单位分组
{
case 0: //利润低于等于10万
bonus = i * 0.1;
break;
case 1: //利润在10万至20万之间
bonus = 10000 + (i-100000) * 0.075;
break;
case 2: //利润在20万至40万之间
case 3:
bonus = 17500 + (i-200000) * 0.05;
break;
case 4: //利润在40万至60万之间
case 5:
bonus = 27500 + (i-400000) * 0.03;
break;
case 6: //利润在60万至100万之间
case 7:
case 8:
case 9:
bonus = 33500 + (i-600000) * 0.015;
break;
default: //利润超过100万
bonus = 39500 + (i-1000000) * 0.01;
}
printf("应发放奖金总数为:%.2f元\n", bonus);
return 0;
}
程序中,利润i和奖金bonus都使用了双精度浮点型变量。利润i通过键盘输入获取。switch语句的条件表达式是(i/100000),将利润按十万为单位分组,利润在不同的分组中执行不同的分支。使用了break语句,当一个条件满足时,就会直接跳出switch语句,不再执行后面的分支。最后通过printf语句输出奖金总数。
相关推荐
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)