选择题
以下程序拟实现计算sum=1+1/2+1/3+…+1/50。
#include<stdio.h>
main()
{ int i;double sum;
sum=1.0;
i=1;
do
{ i++;sum+=1/i;}
while(i<50);
printf('sum=%lf\n',sum);
}
程序运行后,不能得到正确结果,出现问题的语句是______。
A、
sum+=1/i;
B、
while(i<50);
C、
sum=1.0;
D、
i++;
【正确答案】
A
【答案解析】
选项A中,sum+=1/i;i为整型,因此1/i是整型类型,当1/i有小数时,小数部分会被截断。因此1/i结果始终为0,导致结果出错,应改为sum+=1.0/i。因此答案为A选项。
提交答案
关闭