要求以下程序的功能是计算:$s=1+\dfrac{1}{2}+\dfrac{1}{3}+\dots+\dfrac{1}{10}$。
#include <iostream>
using namespace std;
int main()
{
int n;
float s;
s = 1.0;
for(n = 10; n > 1; n--)
s = s + 1 / n;
cout << s << endl;
return 0;
} 程序运行后输出结果错误,导致错误结果的程序行是( )。
看到整数除法1/n → 先想类型不匹配
别被s=1.0迷惑,以为整个表达式都是浮点运算。
考点:整数除法陷阱|运算符优先级
C行错误:1和n均为int,整数除法截断小数,结果恒为0。