要求以下程序的功能是计算: s=1 + 1/2 + 1/3 + . + 1/10 但运行后输出结果错误 导致错误结果

大学网课 已帮助 人

要求以下程序的功能是计算: s=1 + 1/2 + 1/3 + ... + 1/10, 但运行后输出结果错误,导致错误结果的程序行是 int main (void){ int n; float s; s=1.0; for(n=10; n>1; n--) s=s+1/n; printf("%6.4fn",s); return 0; }

A.int n; float s;

B.for(n=10; n>1; n--) s=s+1/n;

C.s=s+1/n;

D.s=1.0;

要求以下程序的功能是计算: s=1 + 1/2 + 1/3 + . + 1/10  但运行后输出结果错误 导致错误结果

热搜:下面程序的功能是输出数组s中最大元素

回答

共1条回复

  • C 解析:程序中由于n为整型,所以1/n的结果始终为0,故程序最后输出的结果为0,其结果错误,原因为在表达式1/n中1和n均为整型,所以应该将1改为1.0,这样表达式1.0/n的值不为0,为该数学表达式的值,因此我们可以知道导致程序运行后输出结果错误的行为s=s+1/n;,所以,4个选项中选项C符合题意。