当前位置: 代码迷 >> C语言 >> 函数嵌套问题,新手求助
  详细解决方案

函数嵌套问题,新手求助

热度:164   发布时间:2008-05-25 23:39:26.0
函数嵌套问题,新手求助
#include<math.h>
int  f1(int x)
{ int n;  int  a[10];
  for(n=1;n<=10;n++)
  a[n]=pow(x,n-1);
  return a[n];
}
   int f2(int n)
{  int b[10];
for(n=1;n<=10;n++)
    {if(n==1)   b[n]=1;
      else    b[n]=(n-1)*f2(n-1);
   return  b[n];
}
}
main()
{ int  a[10], x,n,b[10];  float sum=0;
  for(n=1;n<=10;n++)
{ f1(x),f2(n);  
sum+=a[n]/b[n];}
   printf("%f",sum);
}
最后运行会出现   Floating   point   error:Domain.
为什么会出现这种错误,怎样解决

[[it] 本帖最后由 ximson 于 2008-5-26 00:07 编辑 [/it]]
搜索更多相关的解决方案: int  嵌套  函数  sum  

----------------解决方案--------------------------------------------------------
好像是主函数里没定义F1,F2吧,你只定义了两个F()函数,而有两个F1,F2的被调函数
----------------解决方案--------------------------------------------------------
问题应该有两个:

1,主调函数里是两个 f  函数,而被调函数是  f1  、  f2   ,应该把主函数里改过来;

2,函数的返回值不应该是数组。

以上意见,谨作参考,如有不对之处,还望大家更正。
----------------解决方案--------------------------------------------------------
同意。
----------------解决方案--------------------------------------------------------
我先把主函数中的f(),函数改了,仍然不行,应该就是函数返回值的问题了,我在修改一下。谢谢两位
----------------解决方案--------------------------------------------------------
回复 5# ximson 的帖子
被调函数的形参如果是指针或者是数组,不用返回值,就可以直接修改实参的值。
----------------解决方案--------------------------------------------------------
我认为你的问题很多:
数组越界问题;数组返回有错;类型匹配问题等等。
----------------解决方案--------------------------------------------------------
好像调用函数f的实参没有给定确切的值传给形参,不知我说错了没
----------------解决方案--------------------------------------------------------
  相关解决方案