我的计数器似乎没有增加(用于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的数量似乎并没有增加,无论我的输入如何。请帮忙!
答案 0 :(得分:1)
应该工作,前提是你添加了一个右括号,以及程序的其余部分。如果您实际上 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++
简写: - )