解题思路:

本题总共有6种情况,分别是:

①    利润低于或等于100000元时

       即i<=100000

②    利润高于100000元,低于200000元时

       即100000<i≤200000

③    200000<i≤400000时

④    400000<i≤600000元时

⑤    600000<i≤1000000时

⑥    i>1000000时

我们分别取900,100000,200000,256000,400000,600000,1000000,1500000几个数来计算验证。

 

1.当取900时,此时的利润区间在①利润低于或等于100000元时这个区间, 奖金为利润的10%,所以利润为:

900*0.1=90

 

2.当取100000时,此时的利润区间在①利润低于或等于100000元时这个区间, 奖金为利润的10%,所以利润为:

100000*0.1=10000

 

3. 当取150000时,此时的利润空间为①利润低于或等于100000元和②利润高于10000元,低于200000元这两个区间,奖金分别为10%和7.5%,所以此时的利润为:

100000*0.1+[(150000-100000)*0.075]=10000+7500=13750

 

4.当取200000时,此时的利润空间为①利润低于或等于100000元和②利润高于10000元,低于200000元这两个区间,奖金分别为10%和7.5%,所以此时的利润为:

100000*0.1+[(200000-100000)*0.075]=10000+7500=17500

 

5. 当取256000时,此时的利润空间为①利润低于或等于100000元、②利润高于10000元,低于200000元和③200000<i≤400000这三个区间,奖金分别为10%和、7.5%和5%,所以此时的利润为:

100000*0.1+100000*0.075+[(256000-200000)*0.05]=10000+7500+2800=20300


6. 当取400000时,此时的利润空间为①利润低于或等于100000元、②利润高于10000元,低于200000元和③200000<i≤400000这三个区间,奖金分别为10%和、7.5%和5%,所以此时的利润为:

100000*0.1+100000*0.075+[(400000-200000)*0.05]=10000+7500+10000=27500

 

7. 当取600000时,此时的利润空间为①利润低于或等于100000元、②利润高于10000元,低于200000元、③200000<i≤400000和    ④400000<i≤600000元这四个区间,奖金分别为10%和、7.5%、5%和3%,所以此时的利润为:

100000*0.1+100000*0.075+200000*0.05+[(600000-400000)*0.03]=10000+7500+10000+6000=33500

 

8. 当取1000000时,此时的利润空间为①利润低于或等于100000元、②利润高于10000元,低于200000元、③200000<i≤400000、④400000<i≤600000元和⑤600000<i≤1000000这五个区间,奖金分别为10%和、7.5%、5%、3%和1.5%,所以此时的利润为:

100000*0.1+100000*0.075+200000*0.05+200000*0.03+[(1000000-600000)*0.015]=10000+7500+10000+6000+6000=39500

 

9. 当取1500000时,此时的利润空间为①利润低于或等于100000元、②利润高于10000元,低于200000元、③200000<i≤400000、④400000<i≤600000元和、⑤600000

100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+[(1500000-1000000)*0.01]= 10000+7500+10000+6000+6000+5000=44500



注意事项:


从利润高于100000元时,每个阶段的奖金都要进行计算


参考代码:

#include <stdio.h>

int main() {
    int i;
    scanf("%d", &i);
    if (i <= 100000) {//①    利润低于或等于100000元时
        i = i * 0.1;
    } else if (100000 < i && i <= 200000) {//②    利润高于100000元,低于200000元时
        i = (100000 * 0.1) + (i - 100000) * 0.075;
    } else if (200000 < i && i <= 400000) {//③    200000<i≤400000时
        i = (100000 * 0.1) + 100000 * 0.075 + (i - 200000) * 0.05;
    } else if (400000 < i && i <= 600000) {//④    400000<i≤600000元时
        i = (100000 * 0.1) + 100000 * 0.075 + 200000 * 0.05 + (i - 400000) * 0.03;
    } else if (600000 < i && i <= 1000000) {//⑤    600000<i≤1000000时
        i = (100000 * 0.1) + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (i - 600000) * 0.015;
    } else {//⑥    i>1000000时
        i = (100000 * 0.1) + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (i - 1000000) * 0.01;
    }
    printf("%d\n", i);
    return 0;
}



点赞(0)
 

0.0分

92 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 73 条评论

1月前 回复TA
#include<stdio.h>
int main()
{
    int x;
    int y;
    scanf_s("%d", &x);
    if (x <= 100000)
    {
        y = 0.1 * x;
    }
    if (x > 100000 && x <= 200000)
    {
        y = 10000 + 0.075 * (x - 100000);
    }
    if (x > 200000 && x <= 400000)
    {
        y = 17500 + 0.05 * (x - 200000);
    }
    if (x > 400000 && x <= 600000)
    {
        y = 27500 + 0.03 * (x - 400000);
    }
    if (x > 600000 && x <= 1000000)
    {
        y = 33500 + 0.015 * (x - 600000);
    }
    if (x > 1000000)
    {
        y = 39500 + 0.01 * (x - 1000000);
    }
    printf("%d", y);
    return 0;
无欲则刚 2月前 回复TA
@无欲则刚 return 0;}  为啥程序判定七十分啊,求大神指点指点一下
无欲则刚 2月前 回复TA
#include<stdio.h>
int main()
{
	int I;
	double w;
	scanf("%d",&I);
	if(I<=100000&&I>=0)
	{
		w=I*0.1;
	}
	else if(I>100000&&I<=200000)
	{
		w=100000*0.1+(I-100000)*0.075;
	}
	else if(200000<I&&I<=400000)
	{
		w=100000*0.1+(200000-100000)*0.075+(I-200000)*0.05;
	}
	else if(400000<I&&I<=600000)
	{
		w=100000*0.1+(200000-100000)*0.075+(I-400000)*0.03;
	}
	else if(600000<I&&I<=1000000)
	{
		w=100000*0.1+(200000-100000)*0.075+(600000-400000)*0.03+(I-600000)*0.015;
	}
	else
	{
		w=100000*0.1+(200000-100000)*0.075+(600000-400000)*0.03+(1000000-600000)*0.015+(I-1000000)*0.01;
	}
	printf("%d\n",w);
9月前 回复TA
#include <stdio.h>
int shi(int l)
{
	int a=l*0.1;
	return a;
}
int ershi(int l)
{
	int a=(l-100000)*0.075;
	return a;
}
int sanshi(int l)
{
	int a=(l-200000)*0.05;
	return a;
}
int sishi(int l)
{
	int a=(l-400000)*0.03;
	return a;
}
int liushi(int l)
{
	int a=(l-600000)*0.015;
	return a;
}
int bai(int l)
{
	int a=(l-1000000)*0.01;
	return a;
}

int main()
{
	int l;
	scanf("%d",&l);
	if(l<=100000)
	printf("%d",shi(l));
	if(l>100000&&l<=200000)
	printf("%d",10000+ershi(l));
	if(l>200000&&l<=400000)
	printf("%d",10000+7500+sanshi(l));
	if(l>400000&&l<=600000)
	printf("%d",10000+7500+10000+sishi(l
ysuing666 9月前 回复TA
@ysuing666 这怎么不对
ysuing666 9月前 回复TA
#include<stdio.h>
int main(){
    int a;
    scanf("%d",&a);
    if(a<=100000){
	   a=a*0.1;
	}else if(100000<a&&a<=200000){
       a=(10000*0.1)+(a - 100000)*0.075;
	}else if (200000<a&&a<= 400000){
       a=(100000*0.1)+100000*0.075+(a-200000)*0.05;
    }else if(400000<a&&a<=600000){
       a=(100000*0.1)+100000*0.075+200000*0.05+(a-400000)*0.03;
    } else if (600000<a&&a<=1000000) {
       a=(100000*0.1)+100000*0.075+200000*0.05+200000*0.03+(a-600000)*0.015;
    } else {
       a=(100000*0.1)+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(a-1000000)*0.01;
    }
    printf("%d\n",a);
dotcpp0742832 9月前 回复TA
@uq_97609592763 代码不完整啊
shangan 9月前 回复TA
#include<stdio.h>

/*
企业发放的奖金根据利润I提成。

利润I低于或等于100000元的,奖金可提10%;
利润高于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,求应发奖金总数。*/
int main(void)
{
    int I = 0;
    int bonus = 0;
    //printf("请输入当月利润:");
    scanf("%d", &I);
    if(I>=0)
    {
        if (I 100000 && I<=20
uq_89689520521 1年前 回复TA
@熊出没 最后是0.01
黄佳豪070 1年前 回复TA
@红颜如霜 从double转换为int会不会出现数据丢失