刚刚学习到函数,求解

请问大家,这是哪里出现了问题?为什么会有这么大的一个负数?我该如何去修改呢?

img

img

img

gb这个变量没有赋值,所以打印他的值是随机的,调用函数赋值给他即可,即gb=bei(m,n),修改如下:

#include <stdio.h>

int yue(int m,int n){
    
    int r;
    if(m<n){
        int t=n;
        n=m;
        m=t;
    }
    
    while(n){
        r=m%n;
        m=n;
        n=r; 
    }
    
    return m; 
} 

int bei(int m,int n){
    
    int p=m*n;
    return (p/yue(m,n));
}

int main(void){
    int m,n;
    int gy,gb;
    scanf("%d%d",&m,&n);
    gy=yue(m,n);
    gb=bei(m,n);
    printf("%d\n%d\n",gy,gb);
    return 0; 
}

img

gb是个随机值,有个函数没调用,gb又没初始化,所以gb是随机值,调用一下最小公倍数函数试试

你忘记调用公倍数的函数了,在打印之前调用一下就可以了。gb=bei(m,n);