偶数平均时的浮点异常错误

时间:2019-10-05 12:29:13

标签: c++

我正在尝试使用c ++查找偶数均值,我的代码似乎很好,它对所有内容都算完美,但是当我输入n为2或n为1时,出现浮点异常错误。

#include <iostream>
using namespace std;

int main()
{
    int kiekis = 0, sum = 0, vidurk = 0, n;
    cin >> n;

    if (n < 2) {
        cout << "NO" << endl;
    }

    else if (n == 2) {
        cout << n / 2 << endl;
    }
    else {
        for (int i = 1; i <= n; i++) {
            if (i % 2 == 0) {
                kiekis++;
                sum += i;
            }
        }
    }
    vidurk = sum / kiekis;
    cout << vidurk << endl;

    return 0;
}

4 个答案:

答案 0 :(得分:1)

更改

vidurk = sum / kiekis;

vidurk = kiekis == 0 ? sum : (sum / kiekis);

答案 1 :(得分:0)

在此声明中

vidurk = sum / kiekis;

赋值右侧的变量的值等于零

int kiekis = 0,sum = 0,vidurk = 0,n;
    ^^^^^^^^^^^^^^^^^^ 

因为当n等于1或2时,变量不变。

因此,在输出平均值之前,应检查kiekis是否等于0。

答案 2 :(得分:0)

if除以零,除非运行if

答案 3 :(得分:0)

是的,每当您输入2或1时,sum和kiekis的值仍为0。 所以vidurk的值为0/0 不确定的形式 随便放

vidurk = sum / kiekis;     cout << vidurk << endl; 此语句在else块中。