while ((ch = getchar()) != '#') #注:ch = getchar()一定要用括号括起来 因为!=的运算符优先级最高
if (islower(ch) || isupper(ch))
printf("%d words, %d space, %d enter, %d others", c_w, c_s, c_n, c_o);
printf("Please enter some characters (enter '#' to quite):\n");
while ((ch = getchar()) != '#')
printf("t - % 3d ", ch); #注:\t代表Tab
第三题: 卡了很久,思维有点僵住了。一直在疑惑为什么感觉while((ch= getchar())可以每输入一个字符不用回车就可以走一遍循环而数字就不可以。想了一下,其实字符就数字,比方输入ABC 10进制就是输入 (65)(66)(67)这3个数字,65跑一遍循环,66一遍,67一遍,其实和这题 输入65 回车 66回车 67回车是一样的
int sum_en = 0, sum_on = 0, number;
printf("Please enter some numbers:");
while (scanf("%d", &number) == 1 && (number !=0))
ave_en = (float)sum_en / i; #注:因为sum_en和i都声明为了整数所以,在ave_en前面声明float不管用 需要在后面两个数字中任意声明一个。
printf("You can enter agin (0 to quit):");
printf("We have %d even numbers, the average of them is %g\n", i, ave_en);
printf("We have %d old numbers, the average of them is %g\n", j, ave_on);