问答题 给定程序MODI1.C中函数fun的功能是:根据整型形参m,计算如下公式的值。 1 1 1 1 y = ------- + --------- + --------- + …… + ------- 100*100 200*200 300*300 m*m 例如,若m = 2000,则应输出: 0.000160。 请改正程序中的语法错误,使它能计算出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include /************found************/ fun ( int m ) { double y = 0, d ; int i ; /************found************/ for( i = 100, i <= m, i += 100 ) { d = (double)i * (double)i ; y += 1.0 / d ; } return( y ) ; } main( ) { int n = 2000 ; printf( "/nThe result is %lf/n", fun ( n ) ) ; }
【正确答案】第一处:由于计算的实型值要通过函数返回,所以必须定义函数的返回类型,只要int或void可以省略,其他都要定义类型。由于返回是实型值,所以应在数名前加上double等定义。如果使用float则精度不够,所以在这里不能使用float定义。 第二处:在for循环中,两个“;”不可省略,在此把“;”错写成“,”。
【答案解析】