main()
{
char c;
int a=0,b=0,d=0,e=0;
for(;(c=getchar())!=’\n’;)
{
if((c>=’A'&&c<=’Z')||(c>=’a'&&c< =’z'))
a=a+1;
else if(c=’ ‘) b=b+1;
else if(c>=’0′&&c<=’9′) d=d+1;
else e=e+1;
}
printf(“英文字母有%d个\n”,a);
printf(“空格有%d个\n”,b);
printf(“数字有%d个\n”,d);
printf(“其他字符有%d个\n”,e);
}
不知道错在哪里
>> 本文固定链接: http://www.vcgood.com/archives/725
错误有三
1:不应用for循环,应用while
2:if((c>=’A'&&c<=’Z')||(c>=’a'&&c&l t; =’z'))中的后面的c<=’z'等号前面有一空格,应把空格去掉
3:else if(c=’ ‘) b=b+1;中的c=’ ‘不对,应为c==’ ‘
注意=是赋值号,==才是等号.
改后如下:
main()
{
char c;
int a=0,b=0,d=0,e=0;
while((c=getchar())!=’\n’)
{
if((c>=’A'&&c<=’Z')||(c>=’a'&&c< =’z'))
a=a+1;
else if(c==’ ‘) b=b+1;
else if(c>=’0′&&c<=’9′) d=d+1;
else e=e+1;
}
printf(“英文字母有%d个\n”,a);
printf(“空格有%d个\n”,b);
printf(“数字有%d个\n”,d);
printf(“其他字符有%d个\n”,e);
}