标题:不理解这个程序,谁能帮我解释一下?谢谢!
取消只看楼主
失重
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-1-30
结帖率:100%
 问题点数:0 回复次数:0 
不理解这个程序,谁能帮我解释一下?谢谢!
这是书上的一道练习题:
main()
{
int c;
long i;
float y,x1,x2,x4,x6,x10;
x1=100000*0.1;
x2=x1+100000*0.075;
x4=x2+200000*0.05;
x6=x4+200000*0.03;
x10=x6+400000*0.015;
printf("请输入利润:");
scanf("%ld",&i);
c=i/100000;
if(c>10)
c=10;
switch(c)
{
case 0:y=i*0.1;break;
case 1:y=x1+(i-100000)*0.075;break;
case 2:
case 3:y=x2+(i-200000)*0.05;break;
case 4:
case 5:y=x4+(i-400000)*0.03;break;
case 6:
case 7:
case 8:
case 9:y=x6+(i-600000)*0.015;break;
case 10:y=x10+(i-1000000)*0.01;
}
printf("利润是:%ld,奖金是:%.1f\n",i,y);
}

c=i/100000,switch(c)如果我输入100000,c的结果为1,按道理应该执行case 1:这段语句,但为什么会执行csae 0:这段语句,其实执行这段答案是正确的。但为什么我看不懂,还有当输入200000,按道理也是执行case 2:,为什么又执行case 1:,等,那位高手能指点,我在此多谢了!
搜索更多相关主题的帖子: case break 解释 
2008-04-13 00:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-208701-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.164420 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved