谭浩强教授版《C程序设计》(第二版)P105 5.8企业发放的奖金根据利润提成(if)

谭浩强教授版《C程序设计》(第二版)P105 5.8企业发放的奖金根据利润提成。

利润I低于或等于10万元的,奖金可提10%;200000<I<=400000时,低于20万远的部分低按上述办法提成(下同)。高于20万元的部分5%提成;400000<I<=600000时,高于40万元的部分按3%提成;600000<I<=1000000时,高于60万元的部分按1.5%提成;I>1000000时,超过100万元的部分按1%提成。从键盘输入当月利润I,求应发奖金总数。

想了几天做不出来,后来参考了谭浩强教授版《C程序设计题解与上机指导》(第二版)P30,书上程序有错误,修改后如下:

#include<stdio.h>//P105 5.8企业发放的奖金根据利润提成。 
int main()
{
	float I,bonus,bon1,bon2,bon4,bon6,bon10;
	printf("请输入奖金的数值:");
	scanf("%f",&I);
	fflush(stdin);
		
	bon1=100000*0.1;//利润等于10W时的奖金
	bon2=bon1+100000*0.075;//利润等于20W时的奖金
	bon4=bon2+200000*0.05;//利润等于40W时的奖金
	bon6=bon4+200000*0.03;//利润等于60W时的奖金
	bon10=bon6+400000*0.015;//利润等于100W时的奖金
	if(I<=100000)
	{
		bonus=I*0.1;printf("执行档次为:I<=100000,奖金为:%0.1f\n",bonus);
	}
	else if(I<=200000)
	{
		bonus=bon1+(I-100000)*0.075;printf("执行档次为:100000<I<=200000,奖金为:%0.1f\n",bonus);
	}
	else if(I<=400000)
	{
		bonus=bon2+(I-200000)*0.05;printf("执行档次为:200000<I<=400000,奖金为:%0.1f\n",bonus);
	}
	else if(I<=600000)
	{
		bonus=bon4+(I-400000)*0.03;printf("执行档次为:400000<I<=600000,奖金为:%0.1f\n",bonus);
	}
	else if(I<=1000000)
	{
		bonus=bon6+(I-600000)*0.015;printf("执行档次为:600000<I<=1000000,奖金为:%0.1f\n",bonus);
	}
	else 
	{
		bonus=bon10+(I-1000000)*0.01;printf("执行档次为:I>1000000,奖金为:%0.1f\n",bonus);
	}
	return 0;
}
	 

谭浩强教授版《C程序设计题解与上机指导》(第二版)P30,书上程序错误出现在:bon4和bon6的算法,写成了:

bon4=bon2+100000*0.05;//利润等于40W时的奖金

bon6=bon4+100000*0.03;//利润等于60W时的奖金

根据题意应该改为:

bon4=bon2+200000*0.05;//利润等于40W时的奖金

bon6=bon4+200000*0.03;//利润等于60W时的奖金

我刚开始在编写程序的时候犯了错误,比如234000这个数据,我刚开始是这样理解的:

234000=

(34000是利润小于10W的数据,提成10%)+

(10W符合利润等于10万元,按10%提成)+

(10W符合利润高于10万元,低于20万元,按7.5%提成)。

真是大误呀!真是大误呀!真是大误呀!

错的不像话呀!错的不像话呀!错的不像话呀!

正确的:

234000=

(10W是利润小于等于10W的数据,提成10%)+

(10W符合利润高于10W,小于等于20W,按7.5%提成)+

(34000符合利润等于高于20W,按5%提成)。


道理想通了其实不难。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qslife

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值