求解答 c语言经典一百题 第二题
题目企业发放的奖金根据利润提成。利润(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不是吗?
int main()
{
double i, bonus;
printf("请输入公司利润(万):\n");
scanf("%lf", &i);
if(i <= 10)
{
bonus = 0.1*i;
}
else if(i > 10 && i <= 20)
{
bonus = 1 + (i-10)*0.075;
}
else if(i > 20 && i <= 40)
{
bonus = 1.75 + (i-20)*0.05;
}
else if(i > 40 && i <= 60)
{
bonus = 2.75 + (i-40)*0.03;
}
else if(i > 60 && i <= 100)
{
bonus = 3.35 + (i-60)*0.015;
}
else if(i > 100)
{
bonus = 3.95 + (i-100)*0.01;
}
printf("Bonus = %.2f万\n",bonus);
return 0;
}加错了 哦哦哦,好哒,谢谢啦 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");
}
页:
[1]