| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 768 人关注过本帖
标题:不理解这个程序,谁能帮我解释一下?谢谢!
只看楼主 加入收藏
失重
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-1-30
结帖率:100%
收藏
 问题点数:0 回复次数:2 
不理解这个程序,谁能帮我解释一下?谢谢!
这是书上的一道练习题:
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
assess110
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2008-3-13
收藏
得分:0 
执行的结果正确啊,可能恰好case1的结果和case2的结果相等啊
你换几个不是特殊的数字试试。。。
2008-04-13 00:16
moonwalker
Rank: 1
等 级:新手上路
威 望:1
帖 子:909
专家分:2
注 册:2007-3-2
收藏
得分:0 
程序没错,是走的case 1,另外要学会调试,如果不确定程序如何运行,就单步调试一下

“视频教程网”免费提供教学资源
C不限制你的自由!
条件是自己承担滥用自由的恶果!
2008-04-13 08:14
快速回复:不理解这个程序,谁能帮我解释一下?谢谢!
数据加载中...
 
   



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

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