问答题 1.  请编写一个函数proc(),它的功能是:根据以下公式求π的值(要求满足精度0.0005,即某项小于0.0005时停止迭代)。
    π/2=1+1/3+1*2/(3*5)+1*2*3/(3*5*7)+1*2*3*4/(3*5*7*9)+…+1*2*3*…*n/(3*5*7*…*(2n+1))
    程序运行后,如果输入精度0.0005,则程序输出“3.140578”。
    注意:部分源程序如下。
    请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
    试题程序:
    #include<conio.h>
    #include<stdio.h>
    #include<math.h>
    double proc(double eps)
    {
    }
    void main()
    {
    double s;
    printf("\nPlease enter a precision:");
    scanf("%1f",&s);
    printf("\nPi=%1f\n",proc(s));
    }
【正确答案】double proc(double eps)
   {
   double s,t;int n=1;
   s=0.0;
   t=1;
   while(t>=eps)
   {  s+=t;
   t=t*n/(2*n+1);
   n++;
   }
   return(2*s);
   }
【答案解析】 应定义一个变量表示其和,一个变量表示其分数,由题目可知循环结束的标志为分数小于eps,所以,其为循环结束的条件,根据公式的变化规律,可求得s,最后把2*s返回给主函数。