鱼C论坛

 找回密码
 立即注册
查看: 1522|回复: 3

[已解决]求解答 c语言经典一百题 第二题

[复制链接]
发表于 2018-10-5 12:12:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目
企业发放的奖金根据利润提成。利润(i)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润i,求应发放奖金总数?

我的代码:                    
        #include <stdio.h>
       
        void main()
        {
                int i;
                float profit;
                printf("enter i");
                scanf("%d",&i);
                if(i<=10)
                {
                profit=0.1*i;
                }
                else if(10 && i<=20)
                {
                profit=1+(i-10)*0.075;
                }       
                else if(i>20 && i<=40)
                {
                profit=1+0.75+(i-20)*0.05;
                }
                else if(i>40 && i<=60)
                {
                profit=1.75+0.1+(i-40)*0.03;
                }
                else if(i>60 && i<=100)
                {
                profit=1.85+0.6+(i-60)*0.015;
                }
                else if(i>=100)
                {
                profit=2.45+40*0.015+(i-100)*0.01;
                }
                printf("%f",profit);
        }

程序源代码:
#include "stdio.h"
int main()
{
long i;
float bonus,bon1,bon2,bon4,bon6,bon10;
bon1=100000*0.1;
bon2=bon1+100000*0.075;
bon4=bon2+200000*0.05;
bon6=bon4+200000*0.03;
bon10=bon6+400000*0.015;
printf("请输入利润i:");
scanf("%ld",&i);
if(i<=100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bon1+(i-100000)*0.075;

为什么运行别人的程序,输入20是输出的是 2 呀?
不应该是1.75吗?
profit=10*0.1+(20-10)*0.075不是吗?
         
最佳答案
2018-10-5 15:04:59
  1. int main()
  2. {
  3.     double i, bonus;
  4.     printf("请输入公司利润(万):\n");
  5.     scanf("%lf", &i);
  6.     if(i <= 10)
  7.     {
  8.             bonus = 0.1*i;
  9.     }
  10.     else if(i > 10 && i <= 20)
  11.     {
  12.             bonus = 1 + (i-10)*0.075;
  13.     }        
  14.     else if(i > 20 && i <= 40)
  15.     {
  16.             bonus = 1.75 + (i-20)*0.05;
  17.     }
  18.     else if(i > 40 && i <= 60)
  19.     {
  20.             bonus = 2.75 + (i-40)*0.03;
  21.     }
  22.     else if(i > 60 && i <= 100)
  23.     {
  24.             bonus = 3.35 + (i-60)*0.015;
  25.     }
  26.     else if(i > 100)
  27.     {
  28.             bonus = 3.95 + (i-100)*0.01;
  29.     }
  30.     printf("Bonus = %.2f万\n",bonus);
  31.    
  32.         return 0;
  33. }
复制代码
加错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-5 15:04:59 | 显示全部楼层    本楼为最佳答案   
  1. int main()
  2. {
  3.     double i, bonus;
  4.     printf("请输入公司利润(万):\n");
  5.     scanf("%lf", &i);
  6.     if(i <= 10)
  7.     {
  8.             bonus = 0.1*i;
  9.     }
  10.     else if(i > 10 && i <= 20)
  11.     {
  12.             bonus = 1 + (i-10)*0.075;
  13.     }        
  14.     else if(i > 20 && i <= 40)
  15.     {
  16.             bonus = 1.75 + (i-20)*0.05;
  17.     }
  18.     else if(i > 40 && i <= 60)
  19.     {
  20.             bonus = 2.75 + (i-40)*0.03;
  21.     }
  22.     else if(i > 60 && i <= 100)
  23.     {
  24.             bonus = 3.35 + (i-60)*0.015;
  25.     }
  26.     else if(i > 100)
  27.     {
  28.             bonus = 3.95 + (i-100)*0.01;
  29.     }
  30.     printf("Bonus = %.2f万\n",bonus);
  31.    
  32.         return 0;
  33. }
复制代码
加错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-6 10:12:51 | 显示全部楼层
哦哦哦,好哒,谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-8 14:31:43 | 显示全部楼层
void main()  //第2题
{
        int i;
        double d1, d2, d4, d6, d10, wage;
        d1 = 100000 * 0.1;
        d2 = d1 + 100000 * 0.075;
        d4 = d2 + 200000 * 0.05;
        d6 = d4 + 200000 * 0.03;
        d10 = d6 + 400000 * 0.015;
        printf("请输入利润i :  \n\n");
        scanf_s("%d", &i);
        if (i <= 100000 && i > 0)
        {
                wage = i*0.1;
                printf("利润为 %d 时的奖金为 %f \n\n", i, wage);
        }
        else if (i >= 100000 && i < 200000)
        {
                wage = d1 + (i - 100000)*0.075;
                printf("利润为 %d 时的奖金为 %f \n\n", i, wage);
        }
        else if (i >= 200000 && i < 400000)
        {
                wage = d2 + (i - 200000)*0.05;
                printf("利润为 %d 时的奖金为 %f \n\n", i, wage);
        }
        else if (i >= 400000 && i < 600000)
        {
                wage = d4 + (i - 400000)*0.03;
                printf("利润为 %d 时的奖金为 %f \n\n", i, wage);
        }
        else if (i >= 600000 && i < 1000000)
        {
                wage = d6 + (i - 600000)*0.015;
                printf("利润为 %d 时的奖金为 %f \n\n", i, wage);
        }
        else if (i >= 1000000)
        {
                wage = d10 + (i - 1000000)*0.01;
                printf("利润为 %d 时的奖金为 %f \n\n", i, wage);
        }
        system("PAUSE");
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-15 04:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表