m0_62477603 2022-09-14 22:32 采纳率: 100%
浏览 8
已结题

第二个if内容有错,检查

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

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

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

#include <iostream>
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

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2022-09-14 22:44
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月23日
  • 已采纳回答 9月15日
  • 创建了问题 9月14日