返回狼盟编程首页
编程搜索 [狼盟旧档]
论坛统计


请输入搜索关键字:
├─◆ 狼盟首页 > 查看贴子 > 详细信息

楼主

在Turbo C里遇到的一个小问题,怎么无法编译啊


要计算一个数学问题

1!/1 + 2!/1+2 + 3!/1+2+3 +...+ n!/1+2+3...+n

我设计了如下的代码:



long fun1(x) /* 计算阶乘的函数*/

int x;

{

  long z;

  if(x==1||x==0) return(z=1);



  else

  {

   z=x*fun(x-1);

   return(z);

  }

}



long fun2(x) /* 计算累加的函数 */

int x;

{

  long z=0;

  int i;

  for(i=1;i<=x;i++)

  z=z+i;

  return(z);

}



main()

{

  long z=0;

  int x,i;

  printf("
Please insert the N=?");

  scanf("%d",&x);



  for(i=1;i<=x;i++)

  z=z+fun1(i)/fun2(i);



  printf("
The result is:%ld",z);

}



在编译的时候,Turbo C没有提示语法错误,但程序无法执行,提示信息:



Linking: D: cmybox
oname.exe

Linker error: Undefined symbol "_fun" in module noname.c



我在程序里设置了中断,但程序在ctrl+F9的时候并没有停下来,这是怎么回事啊?我该如何解决?谢谢各位老师!





Vampire [ 1 楼 ]
2002-08-31 01:27:00
函数fun1里面本来是用递归的,应该用fun1,你错写成fun了,就是这么简单. 

xuby2000 [ 2 楼 ]
2002-09-02 19:13:00
同意Vampire的意见! 

xzyu [ 3 楼 ]
2002-09-03 17:31:00
long fun1(x) /* 计算阶乘的函数*/
int x;
{
  long z;
  if(x==1||x==0) return(z=1);

  else
  {
   z=x*fun(x-1);<----改成fun1
   return(z);
  }
}