第二个if内容有错,检查

问题遇到的现象和发生背景

//计算非负整数 m 到 n(包括m 和 n )之间的所有奇数的和,其中,m 不大于 n

用代码块功能插入代码,请勿粘贴截图

#include 
using namespace std;
int main()
{
    int m = 0, n = 0, i = 0, sum = 0;
    cin >> m >> n ;
    if (n % 2 != 0)
    {
        if (m == n)
        {
            sum = m + n;
            cout << sum;
        }
        else
        {
            for (i = n; i >= m; i -= 2)
            {
                sum += i;
            }
        }
            cout << sum;
    }
    else if (m == n)
    {
        cout << 0;
    }
    else
    {
        for (i = n - 1;m <= i;i-=2)
        {
            sum += i;
        }
        cout << sum;
    }
    return 0;
}
运行结果及报错内容

输入相同奇数运行结果错误

img

22行要放到上面的else代码块。你放到外面了,导致输入3 3的时候,cout<<sum执行了两次,输出了2次6