我正在尝试使用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;
}
答案 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块中。