C语言求两个正整数m和n的最大公约数和最小公倍数

求解:求两个正整数m和n的最大公约数和最小公倍数。
【输入/输出示例】
77,112↙
gcd=7,lcm=1232
这样做输出不正确,请问问题出在哪,谢谢

#include
int main(void)
{
    int m,n,gcd,lcm,r,a,b,max;
    scanf("%d,%d",&m,&n);
    a=m;b=n;
    if(n>m)
        max=n;n=m;m=max;
    while(m%n==r)
    {
        m=n;
        n=r;
    }
    lcm=(a*b)/n;
    printf("gcd=%d,lcm=%d\n",n,lcm);
    return 0;
}

题主你好,我基于你写的代码改写了一份C语言版的:

#include<stdio.h>

int main() {
    int m, n, gcd, lcm, r, a, b;
    scanf("%d,%d", &m, &n);
    a=m;
    b=n;
    while (b > 0) {
        r = a % b;
        a = b;
        b = r;
    }
    gcd = a;
    lcm = (m * n) / gcd;
    printf("gcd=%d,lcm=%d\n", gcd, lcm);
    return 0;
}

如果我的回答对你有帮助,还望采纳!

m%n=r,r没有值,没有初始化,代码就有错误了