tc下函数调用有关问题

tc下函数调用问题
/*tc下求最大公约数和最小公倍数*/
#include <stdio.h>
#include <math.h>
int twomax();
int twomin();
main()
{
int a,b;
printf("a=\n");
scanf("%d",&a);
printf("b=\n");
scanf("%d",&b);
printf("twoMAX=%d,twoMIN=%d",twomax(a,b),twomin(a,b));
}
int twomax(int a,int b)
{
 int i,m,n=1;
 if (a>=b) m=sqrt(b);
 else m=sqrt(a);
 for (i=2;i<=m;i++)
  if (a%i==0 && b%i==0) n=i;
 return(n);
}
int twomin(int a,int b)
{
return(a*b/twomax(a,b));
}
编译提示调用函数twomax(a,b),twomin(a,b)出现多余参数,将5,6行删掉,编译提示函数未定义,将函数体twomax(a,b)和twomin(a,b)整体移到main()前编译及运行均正常,请教原因?

------解决方案--------------------
int twomax(int,int); 
int twomin(int,int);

声明地方要和定义一致。
------解决方案--------------------
是的,
声明地方要一致,
以前我也常如此.