个人觉得楼主的程序有几个错误;
第一个就是楼上说的,应该是 char ch;
第二个,如果是想统计一个字符串中数字和其他字符的个数,而且以*表示结束,那么应该:
1、将if(ch>='0'||ch<='9')改为
if(ch>='0'&&ch<='9')
2、将
count1和count2都赋初值0;(没有初值的话,count1++怎么进行?)
3、将while (ch=='*');改为
while (ch!='*');
将上述改完过后,如果输入
123*
会显示
4
0
因为你用的是do while循环,是先scanf再判断ch是否为*
scanf到3时,不为*,这时就会把*给scanf进去了,从而导致count1在3的基础上加再加1
所以如果再在if前面加上
if(ch!='*')
这时再输入123*
将会显示
3
0