标题:函数嵌套问题,新手求助
只看楼主
ximson
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-5-25
 问题点数:0 回复次数:7 
函数嵌套问题,新手求助
#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 
2008-05-25 23:39
伤心的我
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2008-5-24
得分:0 
好像是主函数里没定义F1,F2吧,你只定义了两个F()函数,而有两个F1,F2的被调函数
2008-05-25 23:50
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
得分:0 
问题应该有两个:

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

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

以上意见,谨作参考,如有不对之处,还望大家更正。
2008-05-25 23:55
伤心的我
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2008-5-24
得分:0 
同意。
2008-05-26 00:12
ximson
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-5-25
得分:0 
我先把主函数中的f(),函数改了,仍然不行,应该就是函数返回值的问题了,我在修改一下。谢谢两位
2008-05-26 00:14
广陵绝唱
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:29
帖 子:3607
专家分:1709
注 册:2008-2-15
得分:0 
回复 5# ximson 的帖子
被调函数的形参如果是指针或者是数组,不用返回值,就可以直接修改实参的值。
2008-05-26 01:40
miaohg
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-5-25
得分:0 
我认为你的问题很多:
数组越界问题;数组返回有错;类型匹配问题等等。
2008-05-26 11:07
伤心的我
Rank: 1
等 级:新手上路
帖 子:82
专家分:0
注 册:2008-5-24
得分:0 
好像调用函数f的实参没有给定确切的值传给形参,不知我说错了没
2008-05-26 11:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-215923-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.183296 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved