kid_0203 2015-12-07 08:59 采纳率: 50%
浏览 1428
已采纳

c语言题目求助~~~大家帮忙看一下这个代码有啥错误

**
1/1 + 1/2 + 1/3 + 1/4 + ... 在数学上称为调和级数。

**它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。

但是,它发散的很慢:

前1项和达到 1.0
前4项和才超过 2.0
前83项的和才超过 5.0

那么,请你计算一下,要加多少项,才能使得和达到或超过 15.0 呢?**

请填写这个整数。

注意:只需要填写一个整数,不要填写任何多余的内容。比如说明文字。**

 #include<stdio.h>
int main()
{
double s=0;long i;
for(i=1;s<15.0;i++)
s+=1.0/i;
 printf("%ld",i); 
return 0;
}

正确结果是1835421 可我这个代码结果是1835422

  • 写回答

3条回答 默认 最新

  • ysuwood 2015-12-07 09:03
    关注

    退出循环时多加了一次,修改:

     #include<stdio.h>
    int main()
    {
        double s=0;long i;
        for(i=1; ;i++)
        {
            s+=1.0/i;
            if(s>15.0) break;
        }
        printf("%ld",i); 
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题