计数器没有正确递增

时间:2014-08-31 10:22:50

标签: c count integer counter getchar

我的计数器似乎没有增加(用于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的数量似乎并没有增加,无论我的输入如何。请帮忙!

1 个答案:

答案 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++简写: - )