解题思路:
本题总共有6种情况,分别是:
1. 利润低于或等于100000元时
即i<=100000
2. 利润高于100000元,低于或等于200000元时
即100000<i≤200000
3. 利润高于200000元,低于或等于400000元时
即200000<i≤400000
4. 利润高于400000元,低于或等于600000元时
即400000<i≤600000
5. 利润高于600000元,低于或等于1000000元时
即600000<i≤1000000
6. 利润高于1000000元时
即i>1000000
注意事项:
分清情况,注意代码的整洁性,还有就是公式别用错。因为这个题解运用了定义整型常量的方法,所以省去了冗杂的0的书写,使代码变得整洁、简便地同时,缩短了代码的编译时间。
参考代码:
#include "stdio.h" int main() { int i,r; const int B=100000; scanf("%d",&i); if(i<=B)//利润低于或等于100000元时 { r=i*0.1; } else if(i>B && i<=(2*B)) //利润高于100000元,低于或等于200000元时 { r=0.1*B+(i-B)*0.075; } else if(i>(2*B) && i<=(4*B)) //利润高于200000元,低于或等于400000元时 { r=0.1*B+0.075*B+(i-2*B)*0.05; } else if(i>(4*B) && i<=(6*B)) //利润高于400000元,低于或等于600000元时 { r=0.1*B+0.075*B+0.05*2*B+(i-4*B)*0.03; } else if(i>(6*B) && i<=(10*B)) //利润高于600000元,低于或等于1000000元时 { r=0.1*B+0.075*B+0.05*2*B+0.03*2*B+(i-6*B)*0.015; } else if(i>(10*B)) //利润高于1000000元时 { r=0.1*B+0.075*B+0.05*2*B+0.03*2*B+4*B*0.015+((i-10*B)*0.01); } printf("%d",r); return 0; }
0.0分
56 人评分
还不是一样都又臭又长 #include<stdio.h> int main() { int a, b; scanf("%d", &a); switch (a / 100000) { case 0: b = a * 0.1; break; case 1: b = 10000 + (a-100000) * 0.075; break; case 2: case 3: b = 17500 + (a-200000) * 0.05; break; case 4: case 5: b = 27500 + (a - 400000) * 0.03; break; case 6: case 7: case 8: case 9: b = 33500 + (a - 600000) * 0.015; break; default: b = 39500 + (a - 1000000) * 0.01; } printf("%d", b); return 0; }
#include<stdio.h> int main() { int I,a,b,c,d,e,f,X=100000,x,y; scanf("%d",&I); #define F(x)((x)>X ? X:(x)) a=F(I); b=F(I-X); #define G(x)((x)>2*X ? 2*X:(x)) c=G(I-2*X); d=G(I-4*X); e=(I-6*X>4*X) ? 4*X:I-6*X; f=I-10*X; #define H(x)((x)>=0 ? (x):0) a=H(a);b=H(b);c=H(c); d=H(d);e=H(e);f=H(f); y=a*0.1f+b*0.075f+c*0.05f+d*0.03f+e*0.015f+f*0.01f; printf("%d",y); return 0; }
第一次解出来题,开心。但是不知道为什么只有70分 #include<stdio.h> int main() { int x,y=0; scanf("%d",&x); int p[]={10000,17500,27500,33500,39500}; if (x>1000000) y=(x-1000000)*0.01+p[4]; else if (x>600000&&x<=1000000) y=(x-600000)*0.015+p[3]; else if (x>400000&&x<=600000) y=(x-400000)*0.03+p[2]; else if (x>200000&&x<=400000) y=(x-200000)*0.05+p[1]; else if (x>100000&&x<=200000) y=(x-100000)*0.075+p[0]; else if (x<100000&&x>0) y=x*0.01; printf("%d\n",y); return 0;
李俊毅 2023-11-01 19:18:21 |
我的80.。。。代码:#include<stdio.h> int main() { int a,m; scanf("%d",&a); if(a<=100000) { m=a*0.1; } if(a>100000&&a<=200000) { m=100000*0.1+(a-100000)*0.075; } if(a>200000&&a<=400000) { m=100000*0.1+100000*0.075+(a-200000)*0.05; } if(a>400000&&a<=600000) { m=100000*0.1+100000*0.075+200000*0.05+(a-400000)*0.03; } if(a>600000&&a<=1000000) { m= 100000*0.1+100000*0.075+200000*0.05+200000*0.03+(a-6000000)*0.015; } if(a>1000000) { m=100000*0.1+100000*0.075+200000*0.05+200000*0.03+600000*0.015+(a-1000000)*0.01; } printf("%d",m); return 0; }
ccc 2023-12-21 18:04:06 |
最后一个else if里面 x <= 100000,然后它下面y = x * 0.1;
lxs_vip 2024-02-04 10:06:23 |
后面的利润计算方式有问题
#include<stdio.h> int main() { int a,b,c,d,e; a=100000; b=200000; c=400000; d=600000; e=1000000; int n,profit; scanf("%d",&n); int grade; //找出所在的区间 if(n>e) { profit=a/10+(b-a)/1000*75+(c-b)/20+(d-c)/100*3+(e-d)*15/1000+(n-e)/100; goto tiaochu; } if(n>d) { profit=a/10+(b-a)/1000*75+(c-b)/20+(d-c)/100*3+(n-d)/1000*15; goto tiaochu; } if(n>c) { profit=a/10+(b-a)/1000*75+(c-b)/20+(n-c)/100*3; goto tiaochu; } if(n>b) { profit=a/10+(b-a)/1000*75+(n-b)/20; goto tiaochu; } if(n>a) { profit=a/10+(n-a)*75/1000; goto tiaochu; } if(n<=a) { profit=n/10
不是错在多个0,就是少个0上,真服了 #include<stdio.h> int main() { int lr; scanf("%d",&lr); int tmp=lr; if(tmp<=100000) tmp*=0.1; else if(tmp>100000 && tmp<=200000) tmp=0.1*100000+(tmp-100000)*0.075; else if(tmp>200000 && tmp<=400000) tmp=0.1*100000+0.075*100000+(tmp-200000)*0.05; else if(tmp>400000 && tmp<=600000) tmp=0.1*100000+0.075*100000+0.05*200000+(tmp-400000)*0.03; else if(tmp>1000000) tmp=0.1*100000+0.075*100000+0.05*200000+0.03*200000+0.015*400000+(tmp-1000000)*0.01; else tmp=0.1*100000+0.075*100000+0.05*200000+0.03*200000+(tmp-600000)*0.015; printf("%d",tmp); return 0; }
#include<stdio.h> int main() { int a; scanf("%d",&a); switch(a/100000) { case 0: case 1: printf("%d",a=a*0.1);break; case 2: printf("%d",a=a*0.175);break; case 3: case 4: printf("%d",a=a*0.175+200000*0.05);break; case 5: case 6: printf("%d",a=a*0.175+200000*0.08);break; case 7: case 8: case 9: case 10: printf("%d",a=a*0.175+200000*0.08+400000*0.015);break; default: printf("%d",a=a*0.175+200000*0.08+400000*0.015+(a-1000000)*0.01);break;
老狗 2023-02-01 23:15:23 |
#include<stdio.h> int main() { int a,m; scanf("%d",&a); switch(a/100000) { case 0: a=a*0.1;break; //利润I低于或等于100000元的,奖金可提10%; case 1: a=(a-100000)*0.075+100000*0.1;break; /*利润高于100000元,低于或等于200000元(100000<I≤200000)时, 低于等于100000元部分按10%提成,高于100000元的部分,可提成 7.5%;*/ case 2: case 3: a=100000*0.075+100000*0.1+(a-200000)*0.05;break; /*200000<I≤400000时 低于200000元部分仍按上述办法提成(下同),高于200000元的部分按5%提成*/ case 4: case 5: a=100000*0.075+100000*0.1+200000*0.05+(a-400000)*0.03;break; //400000<I≤600000元时,高于400000元的部分按3%提成; case 6: case 7: case 8: case 9: a=100000*0.075+100000*0.1+200000*0.08+(a-600000)*0.015;break; //600000<I≤1000000时,高于600000元的部分按1.5%提成; default: a=100000*0.075+100000*0.1+200000*0.08+400000*0.015+(a-1000000)*0.01;break; //I>1000000时,超过1000000元的部分按1%提成 } printf("%d",a); return 0; }
Travis 2023-05-01 17:03:22 |
1
C语言程序设计教程(第三版)课后习题6.11 (C语言代码)for循环浏览:1109 |
C语言程序设计教程(第三版)课后习题10.1 (Java代码)浏览:1436 |
人见人爱A+B (C语言代码)浏览:625 |
简单的a+b (C语言代码)浏览:626 |
川哥的吩咐 (C语言代码)浏览:609 |
C语言训练-自守数问题 (C语言代码)浏览:740 |
数列排序 (C语言代码)浏览:606 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:558 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:839 |
【计算球体积】 (C语言代码)浏览:1548 |
穷哈 2024-03-25 09:46:11 |
那如果a正好等于100000 那结果不就是10000*0.075 是多出来的那份提成是0.075