为什么运行结果不正确?

int zm=0,sz=0,qt=0;
char c;
c=getchar();
while(c!='\n')
{
if(c>='0 '&& c <='9')
sz++;
else if((c>='A' && c<='Z') || (c>='a' && c<='z'))
zm++;
else
qt++;
c=getchar();
}

printf("%d %d %d\n",sz,zm,qt);
system("pause");

7个回答

'0'写错了吧。..........

tianliangcsdn
tianliangcsdn 能将getchar函数改成scanf函数吗?该怎样改?谢谢
5 年多之前 回复
tianliangcsdn
tianliangcsdn 慧眼呀
5 年多之前 回复

另外'\0'也多了一个空格

tianliangcsdn
tianliangcsdn 能将getchar函数改成scanf函数吗?该怎样改?谢谢
5 年多之前 回复

if(c>='0 '&& c <='9')
这句,'0 '多了一个空格!删掉之后就好了。

tianliangcsdn
tianliangcsdn 对了。但是要是不用getchar函数而是用scanf函数该怎么改呀?
5 年多之前 回复

你想得到什么结果,你问之前,自己调试你的程序了吗

tianliangcsdn
tianliangcsdn 肯定调试了。 想得什么结果难道不明显吗? 输入的字符判断是数字 字符 还是其他 。能将getchar函数改成scanf函数吗?该怎样改?谢谢
5 年多之前 回复

c=getchar();
getchar每执行一次获取一个字符,所以得放在循环里
while(c!='\n')
{
...
c=getchar();
}
也可以放在循环条件上
while((c = getchar()) !='\n')
{
...
}

tianliangcsdn
tianliangcsdn 能将getchar函数改成scanf函数吗?该怎样改?谢谢
5 年多之前 回复

循环中间的getchar换成
scanf(%c, &c);

int zm=0,sz=0,qt=0;
char c;
scanf("%s",&c);
while(c!='\n')
{
if(c>='0'&& c <='9')
{
sz++;
} //加上括号为个人习惯
else
if((c>='A' && c<='Z') || (c>='a' && c<='z'))
{
zm++;
}
else
qt++;
getchar();
}
printf("%d %d %d\n",sz,zm,qt);
system("pause");

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐