c语言函数入门题 为什么我的代码有错误

写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。

程序的必要代码为:

main( )

{   int u,v,h,x;

  scanf("%d%d",&u,&v);

  h=hcf(u,v);

  printf("H.C.F=%d\n",h);

  x=lcd(u,v,h);

  printf("L.C.D=%d\n",x);

  }
#include
  main( )
{   
   int u,v,h,x;
   scanf("%d%d",&u,&v);
   h=hcf(u,v);
   printf("H.C.F=%d\n",h);
   x=lcd(u,v,h);
   printf("L.C.D=%d\n",x);
}
int hcf(u,v)
{   int i,t;
    if(u>v)
    t=u;u=v;v=t;
    for(i=u;i>=1;i--)
    {
      if(u%i==0&&v%i==0)
      break;
    }
     return i;
}
int lcd(u,v,h)
{ int i,t;
  if(u>v)
    t=u;u=v;v=t;
  for(i=v;i<=u*v;i++)
  {
    if(i%u==0&&i%v==0)
       break;
  }
   return i;
}

这三句需要括在一起,第二个函数也一样

img