【发布时间】:2018-01-25 04:37:47
【问题描述】:
代码不起作用。 b(blank) 和 t(tab) 的计数结果均为 0。我认为我的条件设置可能存在问题。任何人都可以帮忙吗?
main()
{
int c, b, t, nl;
nl = 0;
b = 0;
t = 0;
while ((c = getchar()) != EOF)
if (c == '\n')
++nl;
if (c == ' ')
++b;
if (c == ' ')
++t;
printf("%d\t%d\t%d\n", nl, b, t);
}
【问题讨论】:
-
对循环使用大括号
-
与 Python 不同,C 不关心缩进。只有第一个
if语句在循环内。另外两个在循环之后,其中c等于EOF。 -
将
'\t'用于tab(例如if (c == '\t')不是多个空格。 -
如果你使用 else if 它会起作用的!
-
如果您使用调试器进行调试,或者只是添加了几个额外的 printfs,那么您将在没有 SO 的情况下解决此问题;(
标签: c