解题思路:根据题意,从每部分利润中获得提成计算均是分段的,故考虑数据结构“分段函数”,且都是y=kx+b形式(y为提成,k为提成百分百,x为利润,k为基础提成,可根据上一分段的最大值计算出,第一段基础提成k1=0,第二段提成基础k2=k1+100000*0.1=10000,后面的以此类推。)
注意事项:书写0的个数和小数点位数要小心,计算细心点。
参考代码:
#includde<stdio.h>
int main()
{
int x; /*要求输入整数利润金额,故利润x应为整型数*/
float y; /*由于提成计算有百分比,故定义成浮点型,以防数据丢失*/
fscanf(stdin,"%d",&x); /* 从标准输入(键盘)输入x*/
/* 利用if else 语句构成分段函数进行计算*/
if(x<=100000)
y=0.1*x;
else if(x>100000&&x<=200000) /*区间表示,注意0的个数,后面如此*/
y=10000+0.075*(x-100000);
else if(x>200000&&x<=400000)
y=17500+0.05*(x-200000);
else if(x>400000&&x<=600000)
y=27500+0.03*(x-400000);
else if(x>600000&&x<=1000000)
y=33500+0.015*(x-600000);
else
y=39500+0.01*(x-1000000);
fprintf(stdout,"%d\n",(int)y); /* 要求输出整数提成金额,故(int)y 强转,fprintf()向标准输出流(屏幕)输出数据*/
return 0;
}
0.0分
3 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复