这个问题怎么解决,有没有人能教一下

编写一个函数,用"辗转相除法"求两个正整数的最大公约数,在主函数中,用指向函数的指针变量来调用该函数。


#include<stdio.h>
int fun(int m,int n)
{
    int r;
    do       //辗转相除法
    {
       r=m%n;       //求余数
       m=n;            //本次循环的除数n,赋给m,作为下一次循环作为被除数
       n=r;              //本次循环的余数r,赋给n,作为下一次循环作为除数
    } while (r>0) ;   //余数r为0时的m值,即是最大公约数
    return m;
}
int main()
{
    int m,n,t;
    int (*p)(int,int);
    p=fun;
    scanf("%d%d",&m,&n);
    t=(*p)(m,n);
    printf("%d\n",t);
    return 0;
}