循环计数范围内的事件编号始终返回1

时间:2013-02-06 02:57:15

标签: c++ loops

我需要一些建议和有用的指示,以帮助我朝着正确的方向前进。我的函数用于计算输入a和输入b之间有多少偶数。

int evens(int a, int b)
{
    int p = 0;
    for(int i=a; i<=b; i++)
    {
        if(i % 2==0)
            ++p;
         return (p);
    }
}

从逻辑上讲,这个功能对我来说很有意义,很容易理解发生了什么。但是,当我运行程序时,无论输入#是什么,它都将P返回为“1”。这让我相信循环是出于某种原因只运行一次然后就是这样。

1 个答案:

答案 0 :(得分:3)

你太早回来了。把它放在循环之外。

可以像这样重写它:

int evens(int a, int b) {
    if(a != b)
        return ((b-a)/2)+1; //I can't think straight, I don't know why
    else {
        if(a % 2 == 0)
            return 1;
        else
            return 0;
    }
}