为什么sum变量的结果= 1?

时间:2019-05-02 23:34:29

标签: c++

输出始终等于1,无法完成数学方程式

for (int i = 1; i <= x; i += 2) {
        sum += 1 / i;
    }

我期望当x等于3时,sum的输出等于4/3,但实际输出为1。

1 个答案:

答案 0 :(得分:0)

在C,C ++和Java之类的语言中,将两个整数相除为零。所以,如果我有:

int x = 3 / 5;

然后x == 0,因为它四舍五入为0。解决这个问题非常简单-只需使用double而不是int

double sum = 0.0;
for(int i = 0; i <= x; i += 2) {
   sum += 1.0 / i; // 1.0 is a double, so division works as intended
}