# include
void main()
{
int I, k, a, b, c, d, e, f,g;
printf("请输入利润I:
");
scanf("%d", &I);
a = I * (1。
0f/10); //此处强制为浮点类型,不然a一直是0,看你的意思了
b = (I - 100000) * 75/1000;
c = (I - 200000) * 5/100;
d = (I - 400000) * 3/100;
e = (I - 600000) * 15/1000;
f = (I - 1000000) * 1/100;
g = (I - 1) / 100000;
switch(g)
{
case 0:
printf("奖金总数k=%d
", a);
break;
case 1:
printf("奖金总数k=%d
", a b);
break;
case 2:
case 3:
printf("奖金总数k=%d
", a b c);
break;
case 4:
case 5:
printf("奖金总数k=%d
", a b c d);
break;
case 6:
case 7:
case 8:
case 9:
printf("奖金总数k=%d
", a b c d e);
break;
default :
printf("奖金总数k=%d
", a b c d e f);
break;
}
望采纳~
case只能对整型或字符起作用,不能对范围起作用,换句话说,必须是确定的数。
按照本题,所列出的范围是10W到100W,除以10W正好能得到这样一个结果:利用10个数达到表示范围的目的。
所以让利润除以10W。但是只是除以10W不能达到目的,举例来说,当利润刚好是10W的时候,本身该是第一档,结果算成了第二档;利用利润I-1刚好达到了区分的目的,希望你能调试一下程序,然后消化一下用意。
。
举例说明:
I <= 100000 时,g = (I - 1) / 100000 = 0;
100000 < I && I <= 200000时,g = (I - 1) / 100000 = 1;
200000 < I && I <= 400000时,g = (I - 1) / 100000 = 2或3;
400000 < I && I <= 600000时,g = (I - 1) / 100000 = 4或5;
600000 < I && I <= 1000000时,g = (I - 1) / 100000 = 6或7或8或9;
大于100w属于其他情况 。
全部