分类：电脑/网络-软件
问题：c语言小问题1.main(){inta=0，b=0；charch 
1.main(){int a=0，b=0；char ch；while((ch=getchar())!='#')swch（ch）{case ‘a’： case 'h';   case'0':b++;}printf("%d,%d\n",a,b);当输入china#<回车>，结果是什么为什么说会循环5次？？？我的答案是1,0  正确答案是5,5对于这个china#  不太懂啊 2.main(){float x1.main(){int a=0，b=0；char ch；while((ch=getchar())!='#')swch（ch）{case ‘a’： case 'h';   case'0':b++;}printf("%d,%d\n",a,b);当输入china#<回车>，结果是什么为什么说会循环5次？？？我的答案是1,0  正确答案是5,5对于这个china#  不太懂啊 2.main(){float x=2.0,y;if(x<0.0)y=0.0;else if(x<10.0)y=1.0/x;else y=1.0;printf("%d\n",y);}我觉得答案是0.500000和1.000000因为我觉得else y=1.0;也满足x=2.0；是这样理解的吗？？？
回答：第一个题：

依次输入字符  china#   时，前5个字符（即china）每输入一个switch就完整的循环一次，直到#结束，共执行了5次a++和b++，所以a=5,b=5

 

第二题：

程序执行到第一个 if  时，不满足条件x<0.0，所以跳到下一个 else if  此时条件满足，所以执行y=1.0/x，故

y=0.5

后面的那个else y=1.0;就不会执行了，所以最终 y=0.5 ，但是输出的为%d格式，即整数格式，所以输出的

不是0.5，那个地方应该是打印错误吧，应改为printf("%f\n",y);此时输出就是0.5了！