标题:guozhencai求助
只看楼主
guozhencai
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-3-9
 问题点数:0 回复次数:4 
guozhencai求助
main() { int v1=0,v2=0; char ch; while(ch=getchar()!='#') switch(ch) {case 'a': case 'h': default: v1++; case '0':v2++; } printf("%d,%d",v1,v2); getch(); } 红色部分怎么理解。 当输入 iiiiiiiiiii# 时, 输出结果是多少,为什么?
搜索更多相关主题的帖子: guozhencai case switch int 
2005-03-22 13:44
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
得分:0 
输入一个i  v1  v2 都加一   结果自己数数   我看着就头痛

红色部分: 当ch等于 a ,h, 0 时 v2++; 当ch不等于a ,h, o 时  v1   v2 都++

关键在于对switch语句的理解

动于心而静如水
2005-03-22 13:58
guozhencai
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-3-9
得分:0 
谢谢!!

[此贴子已经被作者于2005-3-23 16:33:33编辑过]


2005-03-23 08:43
poppylx
Rank: 1
等 级:新手上路
帖 子:367
专家分:0
注 册:2004-9-27
得分:0 
对不起啊  严重的道歉  上面的解释写做了
真混不下去了  快点让他沉下去  不要让别人看到了
更正:
首先  你的程序有误  在符号优先级中 赋值运算副优先级倒数第二  仅比逗号高
逻辑运算符都比逗号高   所以在输入后  循环条件内的运算为  先判断输入符号是否与#号等  不相等则赋值1给ch
所以在程序中  ch都是等于一的

再次就是我错误了
  在你的这个switch中   输入0以外的字符时 v1   v2  都自加    只有在输入0时  v2++

再次表示抱歉   给你带来的麻烦请多加原谅

动于心而静如水
2005-03-23 09:54
guozhencai
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-3-9
得分:0 
但是结果还是有错!!!
2005-03-23 16:48



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




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

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