啊哈磊_编程从这里起步
标题:
统计字符的问题
[打印本页]
作者:
kekegcs
时间:
2013-3-15 15:09
标题:
统计字符的问题
/*
循环输入字符,统计字母,数字和其它符号的个数,
退出循环时输入字母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。。。。。。。
作者:
rosynirvana
时间:
2013-3-15 15:09
if(code=='y'||'Y')
复制代码
问题出在这一句
'y'||'Y'会被求值,你想要的是
if(code=='y' || code=='Y')
复制代码
此外code给一个初始值比较安全,不然可能初始的随机值就是y这些,然后直接不执行了
或者循环前面也加一句code = getchar()
作者:
花心大萝卜13
时间:
2013-3-15 19:48
不要sleep(5000);
作者:
kekegcs
时间:
2013-3-18 21:21
rosynirvana 发表于 2013-3-15 21:59
问题出在这一句
'y'||'Y'会被求值,你想要的是此外code给一个初始值比较安全,不然可能初始的随机值就是y这 ...
多谢指点。看书也要带着问号读。千万不要全相信书中的知识。老实点,一句句写代码。不能耍小聪明。
欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/)
Powered by Discuz! X3.2