下列给定程序中,函数fun的功能是按以下递归公式求函数值。 例如:当给n输入5时,函数值为240;当给n输入3时,函数值为60。 请改正程序中的错误,使它能得到正确结果。 注意;不要改动main函数,不得增行或删行,也不得更改程序

admin2009-02-15  53

问题 下列给定程序中,函数fun的功能是按以下递归公式求函数值。
   
   例如:当给n输入5时,函数值为240;当给n输入3时,函数值为60。
   请改正程序中的错误,使它能得到正确结果。
   注意;不要改动main函数,不得增行或删行,也不得更改程序的结构。
   试题程序:
   #include  <stdio.h>
   /*************found****+*******/
   fun(int n);
   {
   int  c;
   /*************found********+*****/
   if(n=1)
       c=15;
   else
       c=fun(n-1)*2;
   return(c);
   }
   main()
   {
   int  n;
   printf("Enter  n:");
   scanf("%d",&n);
   printf("The result:%d\n\n",fun(n));
   }

选项

答案(1)错误:fun(int n); 正确:fun(int n) (2)错误:if(n=1) 正确:if(n==1)

解析 错误1:该行是函数的首部,不是一条语句,因此不能以分号结束。错误2:if垢面应该紧跟一个条件判断表达式,若写成“if(n=1)”,则说明该表达式的值永远为真,也就是说这个条件永远成立,没有递归执行。
转载请注明原文地址:https://jikaoti.com/ti/4xkiFFFM
0

最新回复(0)