M098

02-程序修改题 软件154 范金瑞 505浏览

所属年份:2012.3;

已知一个数列从0项开始的前3项:0、0、1,以后的各项都是其相邻的前3项之和。下列给定的程序中,函数fun的功能是:计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。
例如,当n=10时,程序的输出结果应为23.197745。

请改正程序中的错误,使它能得出正确的结果。
注意:部分源程序在文件MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include <stdlib.h>
#include  <conio.h>
#include  <stdio.h>
#include  <math.h>
/*************found**************/
fun(int n)
{
    double sum, s0, s1, s2, s;
    int k;
    sum=1.0;
    if (n<=2) sum=0.0;
    s0=0.0;
    s1=0.0;
    s2=1.0;
    for (k=4; k<=n; k++)
    {
        s=s0+s1+s2;
        sum+=sqrt(s);
        s0=s1;
        s1=s2;
        s2=s;
    }
    /*************found**************/
    return sum
       }
       void main()
{
    int n;
    system("CLS");
    printf("Input  N=");
    scanf("%d",&n);
    printf("%f\n",fun(n));
}

【参考答案】

(1)double fun(int n)
(2)return sum ;

【解题思路】
(1)根据函数的返回值可知函数fun应定义为double类型。

(2)语法错误,缺分号。