编写一个函数,用"辗转相除法"求两个正整数的最大公约数,在主函数中,用指向函数的指针变量来调用该函数。
#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;
}