问题描述
- 为什么运行结果不正确?
- int zm=0sz=0qt=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 %dn""szzmqt);
system(""pause"");
解决方案
'0'写错了吧。..........
解决方案二:
另外''也多了一个空格
解决方案三:
if(c>='0 '&& c <='9')
这句,'0 '多了一个空格!删掉之后就好了。
解决方案四:
你想得到什么结果,你问之前,自己调试你的程序了吗
解决方案五:
c=getchar();
getchar每执行一次获取一个字符,所以得放在循环里
while(c!='n')
{
...
c=getchar();
}
也可以放在循环条件上
while((c = getchar()) !='n')
{
...
}
解决方案六:
循环中间的getchar换成
scanf(%c &c);
解决方案七:
int zm=0sz=0qt=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 %dn""szzmqt);
system(""pause"");
时间: 2024-08-03 18:08:23