文章目录
0x00 前言
0x01 题目描述
0x02 问题分析
0x03 代码设计
0x04 完整代码
0x05 运行效果
0x06 总结
0x00 前言
C 语言网不仅提供 C 语言,还包括 C++ 、 java 、算法与数据结构等课程在内的各种入门教程、视频录像、编程经验、编译器教程及软件下载、题解博客,源码分享等优质资源,提倡边学边练边分享,同时提供对口的IT工作,是国内领先实用的综合性编程学习网站!
0x01 题目描述
题目内容:
企业发放的奖金根据利润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,求应发奖金总数。
输入格式:
一个整数,当月利润。 |
输出格式:
一个整数,奖金。 |
样例输入:
900 |
样例输出:
90 |
0x02 问题分析
这道题并没有多大难度,就是需要耐心检查一下计算公式。拿到题目想法是使用 if...else if...else 结构来解。当然还有更多好的解法,五年十年后的我或能熟以运用。首先解这道题需要先绘制一个草图,理清各个利润与提成之间的关系。
0x03 代码设计
int i;
scanf("%d", &i);
代码解析:定义变量 i ,用来存储用户输入的金额。并使用 scanf 函数获取用户输入的数,保存数据到变量 i 中。
if(i <= 100000)
{
i *= 0.1;
}
代码解析:使用 if 判断用户输入的数是否小于等于 100000 ,如果达成条件,那么则计算 i 的利润 10 %。
else if(100000 < i && i <= 200000)
{
i = 100000 * 0.1 + (i - 100000) * 0.075;
}
代码解析:使用 else if 判断用户输入的数是否小于等于 200000 并且大于 100000 ,如果达成条件,那么则计算 100000 的利润 10 % ,并且加上大于 100000 部分的利润 7.5% 。
else if(200000 < i && i <= 400000)
{
i = 100000 * 0.1 + 100000 * 0.075 + (i - 200000) * 0.05;
}
代码解析:使用 else if 判断用户输入的数是否小于等于 400000 并且大于 200000 ,如果达成条件,那么则计算 100000 的利润 10 % ,加上 100000 的利润 7.5% ,并且加上大于 200000 部分的利润 5% 。
else if(400000 < i && i <= 600000)
{
i = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (i - 400000) * 0.03;
}
代码解析:使用 else if 判断用户输入的数是否小于等于 600000 并且大于 400000 ,如果达成条件,那么则计算 100000 的利润 10 % ,加上 100000 的利润 7.5% ,加上 200000 的利润 5% 并且加上大于 400000 部分的利润 3% 。
else if(600000 < i && i <= 1000000)
{
i = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (i - 600000) * 0.015;
}
代码解析:使用 else if 判断用户输入的数是否小于等于 600000 并且大于 400000 ,如果达成条件,那么则计算 100000 的利润 10 % ,加上 100000 的利润 7.5% ,加上 200000 的利润 5% ,加上 200000 的利润 3% ,并且加上大于 600000 部分的利润 1.5%。
else
{
i = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (i - 1000000) * 0.01;
}
代码解析:使用 else if 判断用户输入的数是否小于等于 600000 并且大于 400000 ,如果达成条件,那么则计算 100000 的利润 10 % ,加上 100000 的利润 7.5% ,加上 200000 的利润 5% ,加上 200000 的利润 3% ,加上 400000 的利润 1.5 % ,并且加上大于 1000000 部分的利润 1%。
printf("%d", i);
代码解析:最后使用 printf 函数输出当月金额为 i 时的利润值。
0x04 完整代码
#include <stdio.h>
int main()
{
int i;
scanf("%d", &i);
if(i <= 100000)
{
i *= 0.1;
}
else if(100000 < i && i <= 200000)
{
i = 100000 * 0.1 + (i - 100000) * 0.075;
}
else if(200000 < i && i <= 400000)
{
i = 100000 * 0.1 + 100000 * 0.075 + (i - 200000) * 0.05;
}
else if(400000 < i && i <= 600000)
{
i = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + (i - 400000) * 0.03;
}
else if(600000 < i && i <= 1000000)
{
i = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + (i - 600000) * 0.015;
}
else
{
i = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + 400000 * 0.015 + (i - 1000000) * 0.01;
}
printf("%d", i);
return 0;
}
0x05 运行效果
900
90
--------------------------------
Process exited after 2.06 seconds with return value 0
请按任意键继续. . .
0x06 总结
文章内容为学习记录的笔记,由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。