以下程序拟实现计算 sum=1+1/2+1/3+ … +1/50 。 #include <stdio.h> main( ) { int i; double sum; sum=1.0; i=1; do { i++;

admin2020-11-27  17

问题 以下程序拟实现计算 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选项
转载请注明原文地址:https://jikaoti.com/ti/9pD0FFFM
0

最新回复(0)