| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 810 人关注过本帖
标题:数列求和.....
只看楼主 加入收藏
freezesoul
Rank: 2
等 级:论坛游民
帖 子:47
专家分:38
注 册:2010-3-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
数列求和.....
程序代码:
#include "stdio.h"
main()
{
float x1=2,x2=3,y1=1,y2=2,n,s=x1/y1+x2/y2;
int i;
for (i=3;i<=20;i++)
    {
     x1=x1+x2;x2=x1+x2;y1=y1+y2;y2=y1+y2;
     n=(x1+x2)/(y1+y2);
     s=s+n;
    }
    printf("s=%9.6f",s);
getch();
}

#include "stdio.h"
main()
{

 int n,t;

 float a=2,b=1,s=0;

 for (n=1;n<=20;n++)
    {
     s=s+a/b;
     t=a;a=a+b;b=t;
    }
    printf("sum is %9.6f\n",s);

 getch();
}
为什么第一个的输出结果不对...
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。


[ 本帖最后由 freezesoul 于 2010-11-11 17:19 编辑 ]
搜索更多相关主题的帖子: 求和 
2010-11-09 20:55
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
收藏
得分:4 
for (i=3;i<=20;i++)
    {
     a=x1+x2;b=y1+y2; // 这里的y1,y2,每次循环都没变!肯定是错的!
     s=s+a/b;
    }

If You Want Something, Go Get It, Period.
2010-11-09 21:35
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
收藏
得分:4 
上面的x1,x2,y1,y2每次循环的值都一样.所以最后输出的值也一样.

经验积累中............
2010-11-10 12:10
闯者善行
Rank: 2
等 级:论坛游民
帖 子:8
专家分:20
注 册:2010-11-8
收藏
得分:4 
getch()应该改为getchar()
2010-11-10 12:48
freezesoul
Rank: 2
等 级:论坛游民
帖 子:47
专家分:38
注 册:2010-3-13
收藏
得分:0 
回复 2楼 m21wo
程序代码:
#include "stdio.h"
main()
{
float x1=2,x2=3,y1=1,y2=2,n,s=x1/y1+x2/y2;
int i;
for (i=3;i<=20;i++)
    {
     x1=x1+x2;x2=x1+x2;y1=y1+y2;y2=y1+y2;
     n=(x1+x2)/(y1+y2);
     s=s+n;
    }
    printf("s=%9.6f",s);
getch();
}
那这样呢  又有什么问题。

[ 本帖最后由 freezesoul 于 2010-11-10 19:27 编辑 ]
2010-11-10 19:21
wangjianhui
Rank: 8Rank: 8
来 自:^帅帅城^
等 级:蝙蝠侠
威 望:2
帖 子:353
专家分:745
注 册:2010-3-19
收藏
得分:4 
回复 4楼 闯者善行
getch() 这个是用来停留屏幕的····

加油
2010-11-10 19:24
freezesoul
Rank: 2
等 级:论坛游民
帖 子:47
专家分:38
注 册:2010-3-13
收藏
得分:0 
顶下.. 还没得到想要的答案..
2010-11-11 17:19
luoyang2404
Rank: 2
等 级:论坛游民
帖 子:19
专家分:27
注 册:2010-11-8
收藏
得分:4 
for (i=3;i<=20;i++)
    {
     x1=x1+x2;x2=x1+x2;y1=y1+y2;y2=y1+y2;
     n=(x1+x2)/(y1+y2);
     s=s+n;
    }
楼主,你的这一段程序出现致命问题。
初始化中 float x1=2,x2=3,y1=1,y2=2,n,s=x1/y1+x2/y2;
所以i=3时,x1=5;x2=5+3=8;y1=3,y2=3+2=5
n=(5+8)/(3+5)=13/8,明显i3错误,
2010-11-11 17:58
freezesoul
Rank: 2
等 级:论坛游民
帖 子:47
专家分:38
注 册:2010-3-13
收藏
得分:0 
回复 8楼 luoyang2404
程序代码:
for (i=3;i<=20;i++)
    {
     n=(x1+x2)/(y1+y2);
     s=s+n;
     x1=x1+x2;x2=x1+x2;y1=y1+y2;y2=y1+y2;
    }
这样应该行了吧
2010-11-11 18:48
luoyang2404
Rank: 2
等 级:论坛游民
帖 子:19
专家分:27
注 册:2010-11-8
收藏
得分:0 
正确代码:请参考
#include "stdio.h"
void main()
{
float x1=2,x2=3,y1=1,y2=2,n,s=x1/y1+x2/y2;
float t,z;
int i;
for (i=3;i<=20;i++)
    {
     n=(x1+x2)/(y1+y2);
     printf("%.1f/%.1f\n",(x1+x2),(y1+y2));//查看各项是否符合标准
     s=s+n;
     t=x1;x1=x2;x2=t+x2;//此处需要用中间量进行转移值
     z=y1;y1=y2;y2=z+y2;
    }
    printf("s=%9.6f",s);
}

我用的是VC编译器
2010-11-12 10:59
快速回复:数列求和.....
数据加载中...
 
   



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

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