#include"stdio.h"
main()
{int n1=0,n2=0,n3=0;char ch;
while(ch=getchar()!='!')
switch(ch)
{case '1':case '3':n1++;break;
case '2':case '4':n2++;break;
default:n3++;break;
}
printf("%d%d%d\n",n1,n2,n3);
}
输入是01234567!回车
题答案是224
程序结果是008
哪里有问题,为什么输入的字符和case后面字符匹配不上?
我的程序结果也是008
我们一起来看这个程序啊,我想你一定是这么做的!
输入的是0
没有所以就做n3++
输入1
做的是n1++
输入2
n2++
输入3
n1++
输入4
n2++
然后567都是n3++
所以觉得是224
但是你忽略了一个地方:
while(ch=getchar()!='!')
ch的值是(getchar()!='!')的逻辑值
ch全是逻辑1,(1!='!')最后就是逻辑0所以跳出循环。
所以是008
你可以试试
结果是224的前提是循环判断语句应该是
while((ch=getchar())!='!')注意括号,是
而不是原先的