c语言输入两个整数求最大公约数和最小公倍数

编译没错,但是输出的结果错了
2024-12-26 15:57:59
推荐回答(3个)
回答1:

如果m小于n,你就把n的值给m,那么两个数不就相等了?

k也没有初始化

另外m,n一直变,当你算最小公倍数的时候,m和n已经不是最开始的m和n了

其实不用管m和n的大小,如果m小于n,那么在循环里就会换过来的

再提供一种递归的

回答2:

1.
int m,n,k;改成int m,n,k,t;

2.
整个if...while部分改成:
k=n*m;
t=n%m;
while(t)
{
n=m;
m=t;
t=n%m;
}

3.
m*n/m改成k/m

回答3: