下列给定程序中,函数fun()的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。 π/4≈1-1/3+1/5-1/7+… 例如,程序运行后,输入0.0001,则程序输出3.1414。

admin2010-11-26  11

问题 下列给定程序中,函数fun()的功能是:用下面的公式求π的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。
              π/4≈1-1/3+1/5-1/7+…
   例如,程序运行后,输入0.0001,则程序输出3.1414。
   请改正程序中的错误,使它能得出正确的结果。
   注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
   试题程序:
   #include <math.h>
   #include <stdio.h>
   float fun(float num)
   { int s;
     float n,t, pi;
     t=1 ;pi=0; n=1; s=1;
   /**************found***************/
     while (t>=num)
          {
          pi=pi+ t;
          n=n+2;
          s=-s;
    /**************found**************/
          t=s% n;
         }
     pi=pi*4;
     return pi;
     }
     main ()
     { float n1, n2;
       clrscr ();
       printf ("Enter a float number: ");
       scanf ("%f", &n1);
       n2=fun (n1);
       print f (" %6.4 f\n ", n2);
     }

选项

答案(1)错误:while(t>=num) 正确:while (fabs(t)>=num) (2)错误;t=s %n; 正确:t=s/n;

解析 函数fun()中while 语句的含义是,当新的一项大于给定参数时,循环累计,计算s的值。而题目要求是最后一项的绝对值小于给定参数,因此循环条件应当为while (fabs(t)>=num),而非while (t>=num)。
转载请注明原文地址:https://kaotiyun.com/show/IPID777K
0

随机试题
最新回复(0)