|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
很简单的一道题,两个代码差不多,就是case 7 那块语句不太一样,输入 比如 740000, 代码一运行case 5,代码二运行case 7,执行语句不一样 为啥输出结果一样
#include <stdio.h>
代码一
int main(void) {
int i,p;
double bonus,bonus1,bonus2,bonus4,bonus6,bonus10;
bonus1 = 100000 * 0.1;
bonus2 =100000*0.075 + bonus1;
bonus4 = 200000*0.05 + bonus2;
bonus6 = 400000*0.03 + bonus4;
bonus10 = 600000*0.015 + bonus6;
scanf("%d",&i);
p = i/100000;
if (p > 10) p = 10 ;
switch(p)
{case 0 : bonus = i*0.1;
case 1: bonus = (i - 100000)*0.075 + bonus1 ;break;
case 2:
case 3: bonus = (i - 200000)*0.05 + bonus2;break;
case 4:
case 5: bonus = (i - 400000)*0.03 + bonus4 ; break;
case 6:
case 7:
case 8:
case 9:bonus = (i - 600000)*0.015 + bonus6;break;
case 10:bonus = (i - 1000000)*0.01 + bonus10;break; }
printf("%10.2f",bonus);
return 0;
}
代码二
#include <stdio.h>
int main(void) {
int i,p;
double bonus,bonus1,bonus2,bonus4,bonus6,bonus10;
bonus1 = 100000 * 0.1;
bonus2 =100000*0.075 + bonus1;
bonus4 = 200000*0.05 + bonus2;
bonus6 = 400000*0.03 + bonus4;
bonus10 = 600000*0.015 + bonus6;
scanf("%d",&i);
p = i/100000;
if (p > 10) p = 11 ;
switch(p)
{case 0 : bonus = i*0.1;
case 1: bonus = (i - 100000)*0.075 + bonus1 ;break;
case 2:
case 3: bonus = (i - 200000)*0.05 + bonus2;break;
case 4:
case 5: bonus = (i - 400000)*0.03 + bonus4 ; break;
case 6:
case 7:bonus = (i - 600000)*0.015 + bonus6;break;
case 8:
case 9:
case 10:
case 11:bonus = (i - 1000000)*0.01 + bonus10;break; }
printf("%10.2f",bonus);
return 0;
}
|
|