0

我需要一些建议和有用的指示来让我朝着正确的方向前进。我的函数旨在计算输入 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”。这让我相信循环由于某种原因只运行一次,然后就是这样。

4

1 回答 1

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;
    }
}
于 2013-02-06T02:58:29.583 回答