小失误if并不是结束

来源:互联网 发布:python requests的功能 编辑:程序博客网 时间:2024/06/11 22:47
#include<stdio.h>
int main(void)
{
    int _a,_b,_c;
    char ch;
    _a=_b=_c=0;
    while((ch=getchar())!='#')
      {
          if(ch==' ')
             _a++;
           if(ch=='\n')
             _b++;
          else
            _c++;
      }
      printf("读取的空格字符为 %d,换行字符为 %d,其它字符为 %d.",_a,_b,_c);
      return 0;
}
输出 为   读取的空格字符为 1,换行字符为 1,其它字符为 4.
在第2个if前加上else
变成如下后
#include<stdio.h>
int main(void)
{
    int _a,_b,_c;
    char ch;
    _a=_b=_c=0;
    while((ch=getchar())!='#')
      {
          if(ch==' ')
             _a++;
           else
           if(ch=='\n')
             _b++;
          else
            _c++;
      }
      printf("读取的空格字符为 %d,换行字符为 %d,其它字符为 %d.",_a,_b,_c);
      return 0;
}
读取的空格字符为 1,换行字符为 1,其它字符为 3.
由于对if分支语句的使用失误造成在输入第一个空格时,变量ch进入第二个if里进行判断属于else
于是_c++,
例题为C PRIMER PLUS 第五版第7章课后编程练习第1题
原创粉丝点击