|
5啊哈币
/*
循环输入字符,统计字母,数字和其它符号的个数,
退出循环时输入字母y或者Y的时候,输出统计的字母的数字个数,
输入N或着n的时候,输出统计的其它字符的个数。*/
#include<stdio.h>
int main(){
char code;
int sum_sz=0,sum_zm=0,sum_zf=0;
while(code!='Y'&&code!='y'&&code!='N'&&code!='n')
{
code=getchar();
if(code>='A'&&code<='Z'||code>='a'&&code<='z')
sum_zm++;
else if(code>='0'&&code<='9')
sum_sz++;
else
sum_zf++;
}
if(code=='y'||'Y')
{ printf("数字:%d\n",sum_sz);
printf("字母:%d\n",sum_zm);
}
else
printf("其它:%d\n",sum_zf);
sleep(5000);
return 0;
}
不管我是输入y(Y),还是输入n(N).就是不执行
else 后面的语句。
printf("其它:%d\n",sum_zf);
想了好久没发现什么问题。请教各位l。。。。。。。
|
最佳答案
查看完整内容
问题出在这一句
'y'||'Y'会被求值,你想要的是此外code给一个初始值比较安全,不然可能初始的随机值就是y这些,然后直接不执行了
或者循环前面也加一句code = getchar()
|