C语言,输入一段字符,输出字母个数,空格个数,

#include<stdio.h>
int main()
{
int i,b,c;
char a;
i=0;
b=0;
c=0;
a=getchar();
while(c!='\n')
{
if('z'>=a&&'a'<=a||'Z'>=a&&'A'<=a)i=i+1;
else if(a=' ')b=b+1;
else c=c+1;
a=getchar();
}
printf("字母数为%d,空格数为%d,其他字符数为%d\n",i,b,c);
return 0;
}
为什么运行之后不能正确输出》》????

#include<stdio.h>
int main()
{   
int i,b,c;
char a;
i=0;
b=0;
c=0;
a=getchar();
while(a!='\n')//是a!='\n'

if('z'>=a&&'a'<=a||'Z'>=a&&'A'<=a)i=i+1;
else if(a==' ')b=b+1;//是==
else c=c+1;
a=getchar();
}
printf("字母数为%d,空格数为%d,其他字符数为%d\n",i,b,c);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-22
错误1:字符不能接收回车;
错误2:c!='\n'
错误3:a=' '
正确代码如下:
#include<stdio.h>
int main()
{
int i,b,c,j=0;
char a[50];
i=0;
b=0;
c=0;
printf("请输入字符串: ");
gets(a);
while(a[j]!='\0')
{
if('z'>=a[j]&&'a'<=a[j]||'Z'>=a[j]&&'A'<=a[j]) i=i+1;
else if(a[j]==' ') b=b+1;
else c=c+1;
j++;
}
printf("字母数为%d,空格数为%d,其他字符数为%d\n",i,b,c);
return 0;
}
相似回答