| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1352 人关注过本帖
标题:求2/1, 3/2, 5/3, 8/5, 13/8, 21/13,…的前二十项和,我的答案一直错,麻烦 ...
只看楼主 加入收藏
zbn。
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2021-11-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
求2/1, 3/2, 5/3, 8/5, 13/8, 21/13,…的前二十项和,我的答案一直错,麻烦帮我看一下我的代码有什么问题。
#include<stdio.h>
int main(){
    int a,b,i;
    a=1;b=2;
    float sum=0,c;
    for(i=1;i<=20;i++){
        a=b;
        b=a+b;
        c=b/a;
        sum=sum+c;
    }
    printf("%f",sum);
    return 0;
}
搜索更多相关主题的帖子: 代码 答案 i++ int sum 
2021-11-28 20:36
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:10 
#include<stdio.h>

int main(){
    int a,b,i,d;
    a=1;b=2;
    float sum=0,c;
    for(i=1;i<=20;i++){
        //a b 的初始值为第一项,为什么要再次计算 a b 呢,直接使用        
        //a b 都是 int ,计算出来的结果一定是int,为了得到float,需强制float
        c=(float)b/a;
        sum=sum+c;

        printf("%d:a=%d,b=%d,c=%f\n",i,a,b,c);  //debug

        //计算时,第一步就把a的原值给破坏了,再计算 b=a+b怎么得到正确的b呢
        d=a;      
        a=b;
        b=d+b;
    }
    printf("%f",sum);
    return 0;
}

我也是刚学C,一直讨论哈

[此贴子已经被作者于2021-11-28 21:48编辑过]


授人于鱼,不如授人于渔
早已停用QQ了
2021-11-28 21:46
diycai
Rank: 8Rank: 8
等 级:贵宾
威 望:19
帖 子:147
专家分:895
注 册:2021-5-18
收藏
得分:5 
程序代码:
#include<stdio.h>
void main()
{
    float s = 0, tmp;
    int i;
    for (i=0,tmp=2; i<20; i++)//由题目可知,首项值为2,其他项的关系为 f(n+1) = 1 + 1/f(n)
    {
        s += tmp;
        tmp = 1 + 1/tmp;
    }
    printf("%f", s);
}
2021-11-29 14:42
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:5 
好吧,我们都还处于硬算的地方,没有优化算法的能力。
数学不行,看了半天才理解。。

授人于鱼,不如授人于渔
早已停用QQ了
2021-11-29 19:25
不会游泳的虾
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:27
帖 子:108
专家分:675
注 册:2021-7-1
收藏
得分:0 
这么改下,供参考;
程序代码:
#include <stdio.h>
int main() 
{
    int a, b, i;
    a = 1; b = 2;
    double  sum = 0;
    for (i = 1; i <= 20; i++) 
    {
        sum += 1.0 * b / a;
        b = a + b;
        a = b - a;
    }
    printf("%f", sum);
    return 0;
}
2021-11-30 08:25
快速回复:求2/1, 3/2, 5/3, 8/5, 13/8, 21/13,…的前二十项和,我的答案一直错, ...
数据加载中...
 
   



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

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