題目:企業發放的獎金根據利潤提成。利潤(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 #include<stdio.h>
2 int main()3 {
4 long int i;
5 int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
6 scanf("%ld",&i);
7 bonus1=100000*0.1;
8 bonus2=bonus1+100000*0.075;
9 bonus4=bonus2+200000*0.05;
10 bonus6=bonus4+200000*0.03;
11 bonus10=bonus6+400000*0.015;
12 if(i<=100000)
13 bonus=i*0.1;
14 else if(i<=200000)
15 bonus=bonus1+(i-100000)*0.075;
16 else if(i<=400000)
17 bonus=bonus2+(i-200000)*0.05;
18 else if(i<=600000)
19 bonus=bonus4+(i-400000)*0.03;
20 else if(i<=1000000)
21 bonus=bonus6+(i-600000)*0.015;
22 else if(i>1000000)
23 bonus=bonus10+(i-1000000)*0.01;
24 printf("bonus=%d\n",bonus);
25 return 0;
26 }
程序結果:
結果分析 輸入利潤200000元 可得到結果17499元 這和正確答案相比卻少了1元
帶入其他值驗證
會發現個別答案比正確答案少一 而個別答案是正確的 這很奇怪 ,各位博友有能解決的嗎?