计数器不增加正常

问题描述:

我的柜台似乎并没有增加(对于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

你提交的代码是不可编译的,因为你错过了ch的定义,并且你错过了包含while循环的大括号 - 这个大括号可能是至关重要的。 – 2014-08-31 10:27:39

+0

sry这只是我目前程序中有问题的一个粗略部分。生病编辑它 – user2947725 2014-08-31 10:30:08

+0

尝试调试您的代码:http://ericlippert.com/2014/03/05/how-to-debug-small-programs/ – alk 2014-08-31 10:31:48

应该工作,只要你添加一个右大括号和程序的其余部分。并提供你实际上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 

顺便说一句,如果你足够好的Ç编码器来使用:

while ((a = something) == somethingElse) 

构造,你也许应该知道关于counterX++速记以及:-)

+0

是啊我的坏,我忘了把我的输出在我的循环内。反正 – user2947725 2014-08-31 10:53:23