| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 306 人关注过本帖
标题:函数嵌套问题,新手求助
收藏  订阅  推荐  打印
ximson
Rank: 1
等级:新手上路
帖子:4
积分:146
注册:2008-5-25
函数嵌套问题,新手求助

#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.
为什么会出现这种错误,怎样解决

[ 本帖最后由 ximson 于 2008-5-26 00:07 编辑 ]
2008-5-25 23:39
伤心的我
Rank: 2
等级:注册会员
帖子:82
积分:1034
注册:2008-5-24

好像是主函数里没定义F1,F2吧,你只定义了两个F()函数,而有两个F1,F2的被调函数
2008-5-25 23:50
广陵绝唱
Rank: 4
等级:高级会员
帖子:767
积分:8924
威望:1
注册:2008-2-15

问题应该有两个:

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

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

以上意见,谨作参考,如有不对之处,还望大家更正。
2008-5-25 23:55
伤心的我
Rank: 2
等级:注册会员
帖子:82
积分:1034
注册:2008-5-24

同意。
2008-5-26 00:12
ximson
Rank: 1
等级:新手上路
帖子:4
积分:146
注册:2008-5-25

我先把主函数中的f(),函数改了,仍然不行,应该就是函数返回值的问题了,我在修改一下。谢谢两位
2008-5-26 00:14
广陵绝唱
Rank: 4
等级:高级会员
帖子:767
积分:8924
威望:1
注册:2008-2-15
回复 5# ximson 的帖子

被调函数的形参如果是指针或者是数组,不用返回值,就可以直接修改实参的值。
2008-5-26 01:40
miaohg
Rank: 1
等级:新手上路
帖子:16
积分:310
注册:2008-5-25

我认为你的问题很多:
数组越界问题;数组返回有错;类型匹配问题等等。
2008-5-26 11:07
伤心的我
Rank: 2
等级:注册会员
帖子:82
积分:1034
注册:2008-5-24

好像调用函数f的实参没有给定确切的值传给形参,不知我说错了没
2008-5-26 11:51
共有 305 人关注过本帖
发新话题
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.049766 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved