程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c-C程序設計(第四版)習題5-10

c-C程序設計(第四版)習題5-10

編輯:編程綜合問答
C程序設計(第四版)習題5-10

求分數序列
2/1 +3/2+5/3+8/5+13/8+21/13...
前20項之和。

我這樣的代碼為什麼不對啊?輸出是21.00000000 答案輸出是32.6602607986

 #include <stdio.h> 
int main()
{
    int fenzi(int n);
    int fenmu(int m);
    int i;
    float s=0,tem;
    for(i=1;i<=20;i++)
    {
        tem=fenzi(i)/fenmu(i);
        s=s+tem;
    }
    printf("%f",s);
    return 0;
}
int fenzi(int n)
{
    if(n==1) return 2;
    else if(n==2) return 3;
    else return (fenzi(n-2)+fenzi(n-1));
}
int fenmu(int m)
{
    if(m==1) return 1;
    else if(m==2) return 2;
    else return (fenmu(m-2)+fenmu(m-1));
}

最佳回答:


 // ConsoleApplication1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

int fenzi(int n);
int fenmu(int m);

int main()
{
    int i;
    float s = 0, tem;
    for (i = 1; i <= 20; i++)
    {
        tem = (double)fenzi(i) / (double)fenmu(i);
        s = s + tem;
    }
    printf("%f", s);
    return 0;
}
int fenzi(int n)
{
    if (n == 1) return 2;
    else if (n == 2) return 3;
    else return (fenzi(n - 2) + fenzi(n - 1));
}
int fenmu(int m)
{
    if (m == 1) return 1;
    else if (m == 2) return 2;
    else return (fenmu(m - 2) + fenmu(m - 1));
}
caozhy
baidu_23253519
caozhy
baidu_23253519
caozhy
baidu_23253519
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved