大学C语言函数题C语言C语言

函数原型为: double fun(int n); 根据下面的说明,编写该函数。
(1)函数功能:计算 2/1, 3/2, 5/3, 8/5, 13/8, 21/13,...前n项之和。
(2)入口参数:函数形参n>=1是要求计算的项数。
(3)出口值: 函数返回值是累加计算求得的s值。
(4)注意:函数类型(函数返回值)是double类型

你可以参考一下,希望采纳

#include<stdio.h>

double fun(int n)
{
    double x = 2, y = 1, s = 0, t;
    int i;

    for (i = 1; i <= n; i++) {
        s += x / y;
        t = x;
        x = y + x;
        y = t;
    }

    return s;
}

int main() 
{
    int n;
    printf("请输入求和通项:");
    scanf("%d", &n);

    printf("2/1,3/2,5/3,8/5,13/8,21/13……前%d项和为:%f \n", n, fun(n));

    return 0;
}

运行结果:

img

img

供参考:

double fun(int n)
{
    int i,k,t;
    double s=0;
    for (i = 1, k = 2, t = 1; i <= n; i++)
    {
        s += k * 1.0/t;
        k = k + t;
        t = k -t;
    }
    return s;
}