原创 c语言实例

2007-8-22 17:25 3384 5 5 分类: 软件与OS

  今天做了一道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条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /2 下一条