函数嵌套问题,新手求助
#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]]
----------------解决方案--------------------------------------------------------
好像是主函数里没定义F1,F2吧,你只定义了两个F()函数,而有两个F1,F2的被调函数
----------------解决方案--------------------------------------------------------
问题应该有两个:
1,主调函数里是两个 f 函数,而被调函数是 f1 、 f2 ,应该把主函数里改过来;
2,函数的返回值不应该是数组。
以上意见,谨作参考,如有不对之处,还望大家更正。
----------------解决方案--------------------------------------------------------
同意。
----------------解决方案--------------------------------------------------------
我先把主函数中的f(),函数改了,仍然不行,应该就是函数返回值的问题了,我在修改一下。谢谢两位
----------------解决方案--------------------------------------------------------
回复 5# ximson 的帖子
被调函数的形参如果是指针或者是数组,不用返回值,就可以直接修改实参的值。 ----------------解决方案--------------------------------------------------------
我认为你的问题很多:
数组越界问题;数组返回有错;类型匹配问题等等。
----------------解决方案--------------------------------------------------------
好像调用函数f的实参没有给定确切的值传给形参,不知我说错了没
----------------解决方案--------------------------------------------------------