下列给定程序中,函数fun()的功能是:根据整型形参n,计算如下公式的值。 A1=1,A2=1/(1+A1),A3=1/(1+A2),…,An=(1/(1+A(n-1)) 例如,若p=10,则应输出0.617977。 请改正程序中的错误,使它

admin2010-09-14  34

问题 下列给定程序中,函数fun()的功能是:根据整型形参n,计算如下公式的值。
A1=1,A2=1/(1+A1),A3=1/(1+A2),…,An=(1/(1+A(n-1))
   例如,若p=10,则应输出0.617977。
   请改正程序中的错误,使它能得出正确的结果。
   注意:不要改动mah函数,不得增行或删行,也不得更改程序的蛄构.
   试题程序:
    #include <conio.h>
   #include <stdio.h>
   /**************found********************/
   iht fun(iht n)
   {  float A=l;inti;
   /**************foudn********************/
      for(i=2;i<n;i++)
        A=1.0/(i+A);
      return A;
    }
   main ()
   {  int n;
    clrscr ();
    printf("\nPlease enter n:  ");
    $canf ("%d", &n);
    printf ("A%d=%lf\n", n, fun (n));
  }

选项

答案(1)错误:int fun(int n) 正确:float fun(int n) (2)错误:for(i=2;i<n;i++) 正确:for(i=2;i<=n;i++)

解析 该题中fun()函数的作用是计算数列前n项的和,而数列的组成方式是:第n项的分母是功口第n-1项的值,分子为 1,如果循环累加按for(i=2;i<n;i++)执行的话,当我们输入n=2的时候会是什么结果?循环会怎么执行呢?循环不能执行,但数学思路绝对正确,这就矛盾了,所以循环条件应该是for(i=2;i<n;i++)。
转载请注明原文地址:https://jikaoti.com/ti/iIkiFFFM
0

最新回复(0)