解题思路:分析题意可知,每种情况只有超出规定金额才会进行奖金率的改动,没超过的部分回到上一个条件进行费率计算,所以可以用switch嵌套if的方法设定不同条件,循环控制返回上一个条件,每算一部分金额进行加和,最终输出总和。
注意事项:此题题意应该理解为:超过指定金额部分按规定费率计算,指定金额将用上一条件进行计算金额,以此类推。
参考代码:
#include<stdio.h>
int main()
{
int i;
int s=0;
int n=1;
scanf("%d",&i);
while(n==1)
{
switch(1)
{
case 1:if(i<=100000)
{
s=s+i*0.1;
n=0;
break;
};
case 2:if(i>100000 && i<=200000)
{
s=s+(i-100000)*0.075;
i=100000;
};
case 3:if(i>200000 && i<=400000)
{
s=s+(i-200000)*0.05;
i=200000;
};
case 4:if(i>400000 && i<=600000)
{
s=s+(i-400000)*0.03;
i=400000;
};
case 5:if(i>600000 && i<=1000000)
{
s=s+(i-600000)*0.015;
i=600000;
};
case 6:if(i>1000000)
{
s=s+(i-1000000)*0.01;
i=1000000;
};
}
}
printf("%d\n",s);
return 0;
}
0.0分
0 人评分