不明白我的代码哪里错了,好像没有进入到函数中,不知道是什么原因?怎么改正啊?
第4行,定义了int t并没有给初值,while(t>0)不满足循环条件,没有执行循环。
参考:
int fun1(int m,int n){
int s;
while(n!=0){//判断n是否为0,不为0则不做while循环
s=m%n;
m=n;
n=s;
}
return m;//m为最大公约数
}
int fun2(int m,int n){
int a;
a=fun1(m,n);//调用fun1函数,将最大公约数赋值给a
return m*n/a;//两数相乘再除以最大公约数得最小公倍数
}
hcf函数,t没有赋值,lcd函数中,直接用m/n得到的不是公倍数,应该用m和n的乘积除以最大公约数。代码修改如下:
int hcf(int x ,int y) {
int t = x % y;
while (t > 0) {
x = y;
y = t;
t = x % y;
}
return y;
}
int lcd(int m, int n) {
int z;
z = (m * n) / hcf(m, n);
return z;
}