今天做了一道c语言的题,虽然达到了题目的要求,但是总觉得程序有些繁琐,各位帮忙看看有什么更好的办法可以解决这个问题
/*************************************************************************
作者:好心情
日期:2007-08-22
描述:企业年底根据利润提成,以万元为单位.利润低于10万元时,奖金可提10%;利润高
于10万低于20万时,低于10万的部分提10%,高于10万的部分提7.5%;20到40万之间,高
于20万的部分提5%;40到60万,高于40万的部分提3%;60到100万,高于60万的部分提1.5%
;高于100万的部分,提1%. 输入当年的利润,求应发放的奖金总数.
*************************************************************************/
#include <stdio.h>
void main()
{
//声明变量
float gain;//利润
double bonus;//奖金
//获取变量
printf("\n\t请输入利润额(万元):");
scanf("%f",&gain);//获取数据,保存在gain中
//根据利润计算奖金额度
if(gain<=60)
{
if(gain<=20)
{
if(gain<=10)
{
bonus=gain*0.1;
printf("\n\t应发放的奖金总数为:%.2f万",bonus);
}
else
{
bonus=((gain-10)*0.075)+ (gain*0.1);
printf("\n\t应发放的奖金总数为:%.2f万",bonus);
}
}
else
{
if(gain<=40)
{
bonus=((gain-20)*0.05)+ ((gain-10)*0.075)+ (gain*0.1);
printf("\n\t应发放的奖金总数为:%.2f万",bonus);
}
else
{
bonus=((gain-40)*0.03)+ ((gain-20)*0.05)+ ((gain-10)*0.075)+ (gain*0.1);
printf("\n\t应发放的奖金总数为:%.2f万",bonus);
}
}
}
else
{
if(gain<=100)
{
bonus=((gain-60)*0.015)+ ((gain-40)*0.03)+ ((gain-20)*0.05)+ ((gain-10)*0.075)+ (gain*0.1);
printf("\n\t应发放的奖金总数为:%.2f万",bonus);
}
else
{
bonus=((gain-100)*0.01)+ ((gain-60)*0.015)+ ((gain-40)*0.03)+ ((gain-20)*0.05)+ ((gain-10)*0.075)+ (gain*0.1);
printf("\n\t应发放的奖金总数为:%.2f万",bonus);//上一行里的计算公式太长了,郁闷呀
}
}
}
文章评论(0条评论)
登录后参与讨论