| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2807 人关注过本帖
标题:求各位大佬帮忙,求1/1*2+1/2*3+...+1/n*(n+1)直到某一项小于0.001为止
只看楼主 加入收藏
吴佳俊
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-4-5
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:3 
求各位大佬帮忙,求1/1*2+1/2*3+...+1/n*(n+1)直到某一项小于0.001为止
#include<stdio.h>
int main()
{
    int n=1;
    double     k,S=0;
    k=(float)(1/(n*(n+1)));
    while(k>=0.001)
    {
        S+=(float)(1/(n*(n+1)));
        n++;
    }
    printf("%lf\n",S);
    return 0;
}
搜索更多相关主题的帖子: float int 小于 while printf 
2020-04-05 23:24
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
题目要求是 1/1*2+……
代码却是 1/(1*2)+……

…… = (float)(1/(n*(n+1)));
既然 1/(n*(n+1)) 的运算结果必然是0,为什么不直接写 …… = 0.0f ?

while(k>=0.001)
{
    S+=(float)(1/(n*(n+1)));
    n++;
}
既然 k 永远不变,那么不是一次都不执行,就是死循环。

一会儿 double,一会儿 float
2020-04-05 23:51
吴佳俊
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-4-5
收藏
得分:0 
回复 2楼 rjsp
那个我自己编的,就是有问题,后来越改越乱,希望得到大佬的帮助,编写一个正确的程序,再讲解一下
求1/(1*2)+1/(2*3)+1/(3*4)+...+1/(n*(n+1))直到某一项小于0.001为止  的和
上面的算式是数学的式子,编程计算
2020-04-06 00:03
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:5 
回复 3楼 吴佳俊
直到某一项小于0.001为止
那这一“小于0.001”的项要不要统计进 总和 里去?

若不进总和
程序代码:
#include <stdio.h>

int main( void )
{
    double s = 0;
    for( unsigned n=1; n*(n+1)<=1000; ++n )
        s += 1.0/(n*(n+1));
    printf( "%.3f\n", s );
}

若进总和
程序代码:
#include <stdio.h>

int main( void )
{
    double s = 0;
    for( unsigned n=1; (n-1)*n<=1000; ++n )
        s += 1.0/(n*(n+1));
    printf( "%.3f\n", s );
}

2020-04-06 11:39
快速回复:求各位大佬帮忙,求1/1*2+1/2*3+...+1/n*(n+1)直到某一项小于0.001为止 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017360 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved