C语言问题,来帮我解答吧

题目描述:写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。如果输入的数中包含负数,则输出Input Error


#include<stdio.h>
int gcd(int a,int b)
{
    return !b?a:gcd(b,a%b);
}
int gbs(int a,int b)
{
    return b/gcd(a,b)*a;
}
int main()
{
    int a,b,m,n;
    scanf("%d%d",&a,&b);
    if(a<0||b<0)
    {
        printf("intput error");
        return 0;
    }
    m=gcd(a,b);
    n=gbs(a,b);
    printf("最大公约数是 %d\n",m);
    printf("最小公倍数是 %d",n);
    return 0;
}

img


在上课,只能用纸,我回去给你写解析