以下程序拟实现计算sum=1+1/2+1/3+…+1/50。 #include main() { int i;double 8um; sum=1.0; i=1; do {i++;sum+=1/i;}

admin2019-01-11  22

问题 以下程序拟实现计算sum=1+1/2+1/3+…+1/50。
    #include
    main()
    {  int i;double 8um;
    sum=1.0;
    i=1;
    do
    {i++;sum+=1/i;}
    while(i<50);   
    printf("sum=%If\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/TFa0FFFM
0

最新回复(0)