M033

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

所属年份:2011.9;2012.3;

下列给定程序中函数fun的功能是:根据整型形参m,计算如下公式的值。
例如,若m的值为5,则应输出1.463611。

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

#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);或y+=(double)1.0/(i*i)

【考点分析】
本题考查:for循环语句的循环条件;数据类型的强制转换。

【解题思路】
(1)根据公式可以知道for循环语句中变量i的取值范围,应该包括m。
(2)变量y是一个double型变量,而i是整型变量,所以要进行类型转换,改为y+=1.0/(i*i)。