使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modil.C。在此程序中,函数fun()的功能是根据以下公式求π值,并将其作为函数值返回。 例如,当给指定精度的变量eps输入0.0005时,应输出P

admin2023-02-27  71

问题 使用VC++2010打开考生文件夹下modil中的解决方案。此解决方案的项目中包含一个源程序文件modil.C。在此程序中,函数fun()的功能是根据以下公式求π值,并将其作为函数值返回。
    例如,当给指定精度的变量eps输入0.0005时,应输出Pi=3.140578。

    请改正程序中的错误,使它能得出正确的结果。
    注意:不要改动main()函数.不得增行或删行,也不得更改程序的结构!
  试题程序:
1 #include<conio.h>
2 #include<stdio.h>
3 #include<math.h>
4 double fun(double eps)
5 {
6    double s,t;int n=1;
7    s=0.0;
8  /*********found*********/
9    t=0;
10    while(t>eps)
11    {
12    s+=t;
13    t=t*n/(2*n+1);
14    n++;
15    }
16  /*********found*********/
17    return(s);
18 }
19 void main()
20 {
21    double x;
22    printf("\nPlease enter a precision:");
23    scanf("%1f",&x);
24    printf("\nPi=%1fkn",fun(x));
25 }

选项

答案(1)t=1.0; (2)return(s*2);

解析 (1)从计算的公式可以看出,公式的首项为1,而while循环是从公式的第2项开始的。因为变量t为double型,所以赋初值为1.0。
    (2)while循环计算的是π/2的值,题目要求返回π的值,所以函数返回2* s。  
转载请注明原文地址:https://jikaoti.com/ti/eaoiFFFM
0

最新回复(0)