原题链接:[编程入门]利润计算
解题思路:
本题总共有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分
53 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
@编程者 int main(){ int i; int a = 0; scanf("%d", &i); if (i <= 100000) { a = i * 0.1; } else { a = 100000 * 0.1; if (i <= 200000) { a += (i - 100000) * 0.075; } else { a += 100000 * 0.075; if (i <= 400000) { a += (i - 200000) * 0.05; } else { a += 200000 * 0.05; if (i <= 600000) { a += (i - 400000) * 0.03; } else { a += 200000 * 0.03; if (i <= 1000000) { a += (i - 600000) * 0.015; } else { a += 400000 * 0.015; a += (i - 1000000) * 0.01; } } } } } printf("%d\n", a); return 0; }@编程者 a += 200000 * 0.05; if (400000 < i <= 600000) { a += (i - 400000) * 0.03; } else { a += 200000 * 0.03; if (600000 < i <= 1000000) { a += (i - 600000) * 0.015; } else { a += 400000 * 0.015; if (i > 1000000) { a += (i - 1000000) * 0.01; } } } } } } printf("%d", a); return 0; }int main() { int i; int a = 0; scanf("%d", &i); if (i <= 100000) { a = i * 0.1; } else { a = 100000 * 0.1; if (100000 < i <= 200000) { a += (i - 100000) * 0.075; } else { a += 100000 * 0.075; if (200000 < i <= 400000) { a += (i - 200000) * 0.05; } else { a += 200000 * 0.05; if (400000 < i <= 600000) { a += (i - 400000) * 0.03; } else { 为啥我这只对一半呢?还不是一样都又臭又长 #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; }