关于C语言的问题,编译一个程序,统计输入的空格符、制表符和回车符的个数。

我的编写是:#include<stdio.h>main(){int a,b,c,C1;if((C1=getchar())!=EOF){ while(C1=' ')a++; while(C1='\n')b++; whlie(C1='\t\')c++;}printf("%d,%d,%d",a,b,c);} 为什么得不到正确的结果,如果把if和while的位置换了以后却可以得到正确的结果,原理是什么??

第1个回答  2012-04-16
程序里不少错误我就不说了,你编译的时候会有错误提示的。
就你的if和while来说,if跟着的条件是先判定且只判定一次,while更着的条件是多次判定,直到判定为False
第2个回答  2012-04-16
#include<stdio.h>
main()
{int a,b,c,C1;
if((C1=getchar())!=EOF) //如果输入的字符不是结束符,就继续下一句,否则执行下下句(不循环执行)
{
while(C1=' ')a++; //只要字符是空格,就一直执行a++ (循环执行)
while(C1='\n')b++;
whlie(C1='\t\')c++;
}
printf("%d,%d,%d",a,b,c);}本回答被网友采纳
第3个回答  2012-04-16
if-else语句是用于条件判定。while语句是循环断定时用的。
while((C1=getchar())!=EOF){ ...}这句话的意思是只要输入不为EOF时,该语句就循环执行下去。
if(C1=' ') a++; 这句话的意思是当输入为空格时,a才加1
相似回答