当前位置: 代码迷 >> C语言 >> guozhencai求助
  详细解决方案

guozhencai求助

热度:82   发布时间:2005-03-22 13:44:00.0
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  

----------------解决方案--------------------------------------------------------
输入一个i  v1  v2 都加一   结果自己数数   我看着就头痛

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

关键在于对switch语句的理解
----------------解决方案--------------------------------------------------------
谢谢!!

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



----------------解决方案--------------------------------------------------------
对不起啊  严重的道歉  上面的解释写做了
真混不下去了  快点让他沉下去  不要让别人看到了
更正:
首先  你的程序有误  在符号优先级中 赋值运算副优先级倒数第二  仅比逗号高
逻辑运算符都比逗号高   所以在输入后  循环条件内的运算为  先判断输入符号是否与#号等  不相等则赋值1给ch
所以在程序中  ch都是等于一的

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

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

----------------解决方案--------------------------------------------------------
但是结果还是有错!!!
----------------解决方案--------------------------------------------------------
  相关解决方案