M091

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

所属年份:2012.3

下列给定程序中,函数fun的功能是:根据整形参m的值,计算如下公式的值。

例如,若m中的值为5,则应输出0.536389。

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

#include <stdio.h>

double fun ( int m )
{
    double   y = 1.0 ;
    int  i ;
    /**************found**************/
    for(i = 2 ; i < m ; i++)
        /**************found**************/
        y -= 1 /(i * i) ;
    return( y ) ;
}

main( )
{
    int n = 5 ;

    printf( "\nThe result is %lf\n", fun ( n ) ) ;
}

【参考答案】

(1)for(i = 2 ; i<= m ; i++)
(2)y -= 1.0/(i * i);

【解题思路】
(1)使用for循环计算公式,必须计算到m,所以应改为for(i=2; i<=m; i++)。 (2)在除法运算中,如果除数和被除数都是整数,那么所除结果也是整数,因此应改为y-=1.0/(i*i)。