我的计数器似乎没有增加(对于 C 编程)
int ch;
int counterX = 0;
int counterY = 0;
while(( ch = getchar()) != EOF ) {
if (ch == 'X'){
counterX = counterX + 1;
}
if (ch == 'Y'){
counterY = counterY + 1;
}
}
我做了一些测试,无论我的输入如何,counterX 和 counterY 的数字似乎都没有增加。请帮忙!
最佳答案
只要添加右大括号以及程序的其余部分,应该可以工作。前提是您实际上有 X
和/或 Y
出现在输入流上。
例如以下完整程序:
#include <stdio.h>
int main (void) {
int ch, counterX = 0, counterY = 0;
while ((ch = getchar()) != EOF) {
if (ch == 'X')
counterX = counterX + 1;
if (ch == 'Y')
counterY = counterY + 1;
}
printf ("X = %d, Y = %d\n", counterX, counterY);
return 0;
}
当使用 echo XYZZY | 运行时将会testprog
,输出:
X = 1, Y = 2
<小时/>
顺便说一句,如果您是一个足够优秀的 C 程序员,可以使用:
while ((a = something) == somethingElse)
构造,您可能也应该了解 counterX++
简写:-)
关于计数器未正确递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25591033/