统计从键盘输入的一行字符的个数(字符串长度小于等于1000) 输入以换行符结束

#include<stdio.h>
int main()
{
char c;
int d=0,e=0;
c=getchar();
if('a'<=c&&c<='A'||'A'<=c&&c<='Z'||'0'<=c&&c<='9')
d++;
else
e++;
printf("%d\n",d+e);
return 0;
}
不知道错哪了 哪位能帮我看下呢。。。我用else 是因为标点符号和空格什么的我只能这么统计 但结果都是1
而如果我加了while(c!='n') 就没结果输出了 是怎么回事呢 求解

你要知道C程序的执行顺序:从上到下顺序执行的,if语句只被执行一次,但如果你那加了循环语句后(如while)就可被执行多次可以在if语句前加:
while(c!=13){
if('a'<=c&&c<='A'||'A'<=c&&c<='Z'||'0'<=c&&c<='9')
d++;
else
e++;
printf("%d\n",d+e);
return 0;
}回车符的ASCII码为13
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-03
#include<stdio.h>
int main()
{
char c;
int d=0,e=0;

while((c=getchar())!=EOF){
if('a'<=c&&c<='z'||'A'<=c&&c<='Z'||'0'<=c&&c<='9')
d++;
else
e++;
}
printf("%d\n",d+e);
return 0;
}

CTRL+Z出结果,分析你的程序错误getchar()为读出一个字符并赋值于C,但是只是运行一次就没了,因此程序只能算得1(只读第一个字符)追问

你这个也不行的 没法统计 你运行过么

第2个回答  2011-10-03
是while(c!='\n')
第3个回答  2012-03-22
符号也属于字符啊 再说你这个根本没有循环啊 怎么统计
相似回答