| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 608 人关注过本帖
标题:恳求高手 求和问题
只看楼主 加入收藏
简单回忆
Rank: 2
来 自:郴州
等 级:论坛游民
帖 子:89
专家分:28
注 册:2011-3-19
结帖率:96.15%
收藏
已结贴  问题点数:10 回复次数:10 
恳求高手 求和问题
当n=100时,计算S=(1-1/2)+(1/3-1/4)+……+(1/(2n-1)-1/(2n))的值。 做这个程序      本人菜鸟        希望用for循环 或者 while 做这个程序        谢谢
搜索更多相关主题的帖子: 计算 
2011-03-23 17:11
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:2 
不知道做的对不对
程序代码:
root@~ #cat 3.c
#include <stdio.h>

int main (void) {

        int n;
        float sum=0;

        for(n=1;n<=100;n++) {
                if(n%2!=0) {
                        sum += (float)1/n;
                }else{
                        sum -= (float)1/n;
                }
        }
        printf ("%f\n",sum);

        return 0;

}

root@~ #./3
0.688172
root@~ #

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-23 17:20
njkido
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:224
专家分:1184
注 册:2011-3-8
收藏
得分:0 
以下是引用ansic在2011-3-23 17:20:56的发言:

不知道做的对不对

root@~ #cat 3.c
#include <stdio.h>

int main (void) {

        int n;
        float sum=0;

        for(n=1;n<=100;n++) {
                if(n%2!=0) {
                        sum += (float)1/n;
                }else{
                        sum -= (float)1/n;
                }
        }
        printf ("%f\n",sum);

        return 0;

}

root@~ #./3
0.688172
root@~ #


n对应关系有点问题 n=100 最后一项是(-1/200)
2011-03-23 17:43
简单回忆
Rank: 2
来 自:郴州
等 级:论坛游民
帖 子:89
专家分:28
注 册:2011-3-19
收藏
得分:0 
回复 2楼 ansic
我试了   貌似输不出正确的结果        程序没有错
2011-03-24 10:53
c317158943
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2011-03-24 11:07
我是传奇
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:88
专家分:109
注 册:2011-3-21
收藏
得分:0 
学习,学习
2011-03-24 11:27
简单回忆
Rank: 2
来 自:郴州
等 级:论坛游民
帖 子:89
专家分:28
注 册:2011-3-19
收藏
得分:0 
回复 4楼 简单回忆
     sum+=1/n-1/(n+1);
 请问这句是什么意思??
2011-03-25 10:46
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
以下是引用c317158943在2011-3-24 11:07:53的发言:

#include <stdio.h>
void main()
{
    int i;
    float n=1;
    float sum=0;
    for (i=1;i<=100;i++)
    {   
        sum+=1/n-1/(n+1);
        n+=2;
    }
    printf("%f\n",sum);
}
0.690654


嗯, 学习啦!

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-03-25 10:57
shuimu10
Rank: 2
等 级:论坛游民
帖 子:53
专家分:48
注 册:2010-11-19
收藏
得分:3 
#include <stdio.h>
void main()
{
    int i,N,n=1;
    double sum=0;
    while(scanf("%d",&N))
    {
        for (i=1;i<=N;i++)
        {   
            sum+=1.0/(n*(n+1));
            n+=2;
        }
        printf("%f\n",sum);
    }
}
表示不理解 请大神指导  值为什么越来越小 直到收敛为0.679344
图片附件: 游客没有浏览图片的权限,请 登录注册
2011-03-25 12:28
shuimu10
Rank: 2
等 级:论坛游民
帖 子:53
专家分:48
注 册:2010-11-19
收藏
得分:0 
更正一下代码  及运行结果
#include <stdio.h>
void main()
{
    int i,N,n;
    while(scanf("%d",&N))
    {   double sum=0;
        for (i=1,n=1;i<=N;i++)
        {   
            sum+=1.0/(n*(n+1));
            n+=2;
        }
        printf("%f\n",sum);
    }
}
图片附件: 游客没有浏览图片的权限,请 登录注册
2011-03-25 13:00
快速回复:恳求高手 求和问题
数据加载中...
 
   



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

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