请问大家,这是哪里出现了问题?为什么会有这么大的一个负数?我该如何去修改呢?
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;
}
gb是个随机值,有个函数没调用,gb又没初始化,所以gb是随机值,调用一下最小公倍数函数试试
你忘记调用公倍数的函数了,在打印之前调用一下就可以了。gb=bei(m,n);