/********************************************************************************
- Description: 企业发放的奖金根据利润提成。利润(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, 求应发放奖金总数?
1.代码自动测试,边界可以指定,
2.第二个代码调理更明确,效率因该会更好
********************************************************************************/
# include <stdio.h>
# include <unistd.h>
int main(void)
{
int num=0;
for(int a=0; a<=2000000; a+=1) //指定测试边界
{
long int bonus, bonus1, bonus2, bonus4, bonus6, bonus10;
long int bonus_1,bonus_2,bonus_4,bonus_6,bonus_10,bonus_0;
long int i;
printf("a=%d \n", a);
i=bonus=a; //把a的值赋给bonus,进行一个循环
/************** first 根据题目直接硬写 **************/
bonus1 = 100000 * 0.1+ (bonus-100000)*0.075;
bonus2 = 100000*0.1+ 100000*0.075+(bonus-200000)*0.05;
bonus4 = 100000*0.1+ 100000*0.075+200000*0.05+(bonus-400000)*0.03;
bonus6 = 100000*0.1+ 100000*0.075+200000*0.05+200000*0.03+(bonus-600000)*0.015;
bonus10 =100000*0.1+ 100000*0.075+200000*0.05+200000*0.03+400000*0.015+(bonus-1000000)*0.01;
if(bonus<=100000){bonus*=0.1;}
else if(bonus>100000 && bonus<=200000){bonus=bonus1;}
else if(bonus>200000 && bonus<=400000){bonus = bonus2;}
else if(bonus>400000 && bonus<=600000){bonus = bonus4;}
else if(bonus>600000 && bonus<=1000000){bonus = bonus6;}
else if(bonus>1000000){bonus = bonus10;}
/************** second bonus_作为基准值,代码更简练**************/
bonus_1=100000*0.1;
bonus_2=bonus_1+100000*0.075;
bonus_4=bonus_2+200000*0.05;
bonus_6=bonus_4+200000*0.03;
bonus_10=bonus_6+400000*0.015;
if(i<=100000){bonus_0=i*0.1;}
else if(i<=200000){bonus_0=bonus_1+(i-100000)*0.075;} //if else 判断写的更简单
else if(i<=400000){bonus_0=bonus_2+(i-200000)*0.05;}
else if(i<=600000){bonus_0=bonus_4+(i-400000)*0.03;}
else if(i<=1000000){bonus_0=bonus_6+(i-600000)*0.015;}
else {bonus_0=bonus_10+(i-1000000)*0.01;}
if(bonus==bonus_0){
printf("bingo!!! \n");
num++;
}else {printf("wrong!!!! \n");}
}
if(num=2000000+1){printf("Pass! \n");}
else{printf("NG \n");}
system("pause");
return 0;
}
另外,vscode配置太坑了,看各种教程,折腾了三天勉强按自己的想法跑起来了,一把辛酸泪!