当输入的数中包含负数,则输出“input Error”,这种情况应该在下面编码中加什么?哪位帮看下

#include<stdio.h>
int gcd(int a, int b) //gcd最大公因数
{
int i = 0, g = 0;
int m = 0;
m = a < b? a : b;
for(i = 1; i <= m; i++)
{
if(a%i == 0 && b%i == 0)
{
g = i;
}
}
return g;
}
int lcm(int a, int b) //lcm最小公倍数
{
return (a*b)/gcd(a, b);
}
int main()
{
int a = 0, b = 0;
int c = 0, d = 0;
printf("Input number a, b:");
scanf("%d%d",&a,&b);
c = gcd(a, b);
d = lcm(a, b);
printf("Output gcd = %d, lcm = %d",c,d);
return 0;
}

有帮助,请采纳最好给个关注

灵魂拷问:最小公倍数好最大公约数有负数吗?


#include <stdio.h>
int gcd(int a, int b) // gcd最大公因数
{
    int i = 0, g = 0;
    int m = 0;
    m = a < b ? a : b;
    for (i = 1; i <= m; i++)
    {
        if (a % i == 0 && b % i == 0)
        {
            g = i;
        }
    }
    return g;
}
int lcm(int a, int b) // lcm最小公倍数
{
    return (a * b) / gcd(a, b);
}
int main()
{
    int a = 0, b = 0;
    int c = 0, d = 0;
    printf("Input number a, b:");
    scanf("%d%d", &a, &b);
    if(a<0||b<0)
    {
        printf("input Error\n");
        return 0;
    }
    c = gcd(a, b);
    d = lcm(a, b);
    printf("Output gcd = %d, lcm = %d", c, d);
    return 0;
}

scanf后面去判断a.b的值是否有效