请用C语言帮我解答谢谢大佬

4.定义一个函数:int f(int a,intb),求两个参数的最大公约数,在主函数中输入两个整数,调用该函数求最大公约数。(用循环或递归均可)

供参考:

#include <stdio.h>

int f(int a,int b)
{
    int  t;
    a>b?NULL:(t=a,a=b,b=t); //大值放a,小值放b
    while (a%b != 0)
    {
        t = a%b;
        a = b;
        b = t;
    }
    return b;
}


int main()
{
    int m,n;
    scanf("%d%d", &m, &n);
    printf("%d和%d最大公约数为:%d\n",m,n,f(m,n));
    
    return 0;
}

 

#include <stdio.h>
int main(){
	int a, b, c = 0;

	scanf("%d %d", &a, &b);

	if (b > a) {
		a += b;
		b = a - b;
		a = a - b;
	}

	while (1) {
		c = a % b;
		if (c == 0)
			break;
		else {
			a = b;
			b = c;
		}
	}
	printf("%d\n", b);
	return 0;

}