帮我看下我的C程序错在哪?谢谢

来源:百度知道 编辑:UC知道 时间:2024/09/28 09:50:58
题目要求输入一行字符由程序判断出有多少字母数字空格和其他字符
#include "stdio.h"
main()
{char c;
long a=0,b=0,d=0,e=0;
printf("请输入一行字符:");
while((c=getchar())!='\n')
{if((c>='a'&&c<='z')||(c>'A'&&c<='Z'))
{a++;printf("字母有%d\n",a);}
else if(c>=0&&c<=9)
{b++;printf("数字有%d\n",b);}
if(c==' ')
{d++;printf("空格有%d\n",d);}
else
{e++;printf("其他%d\n",e);}}
}
这段程序运行时输入数字后(比如1个数字)软件会输出其他(其他里面输出1)这是为什么我错哪?谢谢!

#include "stdio.h"
main()
{char c;
int a=0,b=0,d=0,e=0;
printf("请输入一行字符:");
while((c=getchar())!='\n')
{if((c>='a'&&c<='z')||(c>'A'&&c<='Z'))
{a++;}
else if(c>=0&&c<=9)
{b++;}
else if(c==' ')
{d++;}
else
{e++;}
}
printf("字母有%d\n",a);
printf("数字有%d\n",b);
printf("空格有%d\n",d);
printf("其他%d\n",e);
}

理论上这里等你的那串输入完了 给一个总的计数。
我这没有c没办法调试 只改了一个地方 if 改成 else if

把判断数字的0和9那个地方,另个单引号:
c>='0'&&c<='9'

怎么好像和上面一样的,不过关键一处不同,就是下面的注释,一定要改

#include "stdio.h"
main()
{char c;
long a=0,b=0,d=0,e=0;
printf("请输入一行字符:");
while((c=getchar())!='\n')
{if((c>='a'&&c<='z')||(c>'A'&&c<='Z