解题思路:根据题意,从每部分利润中获得提成计算均是分段的,故考虑数据结构“分段函数”,且都是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语言程序设计教程(第三版)课后习题1.6 (C语言代码)浏览:612 |
简单的a+b (C语言代码)浏览:583 |
printf基础练习2 (C语言代码)浏览:605 |
九宫重排 (C++代码)浏览:1410 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:436 |
最小公倍数 (C语言代码)浏览:894 |
母牛的故事 (C语言代码)浏览:992 |
C语言程序设计教程(第三版)课后习题5.7 (Java代码)浏览:910 |
C语言程序设计教程(第三版)课后习题8.7 (C语言代码)浏览:609 |
2^k进制数 (C语言描述,蓝桥杯)浏览:1457 |