QQ389203946 QQ389203946
关注数: 41 粉丝数: 557 发帖数: 5,599 关注贴吧数: 22
新人关于书本CPP课后练习有疑问,请大神指点一下 题目是:编写一个程序,该程序读取输入直到遇到#字符号,然后报告读取的空格数目、读取的换行符数目、还有读取的其他所有的字符数目; -----------以下是我思考的写法----------- # include <stdio.h> int main(void) { int b = 0; //空格数目 int n = 0; //换行字符数 int q = 0; //其他所有字符数 char ch; while ((ch = getchar()) != '#') { if (ch = '\b') b++; if (ch = '\n') n++; else q++; } printf("空格数: %d, 换行字符数: %d, 其他所有字符数: %d\n", b, n, q); return 0; } /* 编译结果:当我输入a#敲回车时,输出结果是:空格数:1,换行字符数:0, 其他字符数:0 正确结果不是应该是其他字符数:1吗,为什么会提现在空格数那里,我很不解哪里错了,又试数了几个答案都不对 */ --------然后以下是我网上搜到的答案,感觉跟我的差不多-------- /* 试数结果也是不对的 */ # include <stdio.h> # include <string.h> //使用字符串的函数的时候需要添加此头文件 int main(void) { int bs = 0; //统计空格符 int es = 0; //统计换行符 int th = 0; //统计其他字符 char ch; printf("请输入字符,输入#号后结束:\n"); fflush(stdout); //清空标准输出缓冲区 while ((ch = getchar()) != '#') { if (ch = '\b') { bs++; } else if (ch = '\n') { es++; } else { th++; } } printf("空格数: %d, 换行符数: %d, 其他字符: %d\n", bs, es, th); printf("\nend\n"); return 0; }
首页 1 2 下一页