以下程序拟实现计算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;}

admin2022-10-24  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://kaotiyun.com/show/JXkp777K
0

最新回复(0)