#include<iostream> using namespace std; int main() { int i; float sum=0; for(i=1;i<=33;i++) sum+=2*i/(3*i+1); cout<<sum; return 0; }为什么输出结果是0
时间: 2023-12-04 16:01:40 浏览: 72
这段代码是在计算以下这个式子的值:
2/4 + 4/7 + 6/10 + ... + 64/97
但是在这个式子中,2*i/(3*i+1) 的结果都是小于1的正数,而变量 sum 定义的是 float 类型,所以在累加之后,结果会被自动截断为 0。为了得到正确的结果,可以将 sum 的类型改为 double。修改后的代码如下:
```
#include<iostream>
using namespace std;
int main() {
int i;
double sum=0;
for(i=1;i<=33;i++)
sum+=2.0*i/(3*i+1);
cout<<sum;
return 0;
}
```
运行结果为 27.6125。
阅读全文