c=getchar();这一句的位置不对,现在的位置只能接受一个字符,如果输入字符串的话,会一直让你输入,不会运行到下面的程序,所以这一句应该放到循环里
还有,理解了一下你的程序的意思,感觉你里面有的判断条件不太对,少了=
下面是我稍微改了一下的,你可以看看
- #include <stdio.h>
- int main()
- {
- int l,s,d,o;
- l=s=d=o=0;
- char c='\0';
-
- while((c = getchar()) != '\n')
- {
-
- if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
- {
- l++;
- }
- else if(c==' ')
- {
- s++;
- }
- else if(c>='1'&&c<='9')
- {
- d++;
- }
- else
- {
- o++;
- }
- }
- printf("l=%4d\ns=%4d\nd=%4d\no=%4d\n",l,s,d,o); // 为什么这里输出没有结果呢?
- return 0;
- }
复制代码 |