C++程序编写问题

来源:百度知道 编辑:UC知道 时间:2024/07/02 18:57:37
问题:写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入.
我写的程序:
#include <iostream.h>
#include <math.h>
int max,mid,r,x,y,a,b,;
int divisor(int m,int n)
{
if(m<n)
{
max=n;
n=m;
m=max;
}else{
r=m%n;
while(r!=0)
{
mid=n;
n=r;
m=mid;
int divisor(int n,int r);
}
x=n;
}
return x;
}
int multiple(int m,int n)
{
y=m*n/x;
return y;
}
void main()
{
cout<<"please input two numbers"<<"\n";
cin>>a>>b>>"\n";
divisor(a,b);
cout<<"the divisor is"<<i<<"\n";
multiple(a,b);
cout<<"the multiple is"<<j<<"\n";
}

没报错,但输入完两个数后,程序不继续运行,应该怎么办?谢谢!
I是X,J是Y,我忘改了.另外按楼下的改了,还是不行

通篇找不着你的i和j?呵呵呵

#include <iostream.h>
#include <math.h>
int max,mid,r,x,y,a,b; //////////////////////改动处3
int divisor(int m,int n)
{
loop: if(m<n) ////////////////////////////改动处1
{
max=n;
n=m;
m=max;
}

r=m%n;
while(r!=0)
{
mid=n;
n=r;
m=mid;
goto loop;
//int divisor(int n,int r);
}
x=n;

return x;
}
int multiple(int m,int n)
{
y=m*n/x;
return y;
}
void main()
{
cout<<"please input two numbers"<<"\n";
cin>>a>>b; ///////////////////////////////////改动处2
cout<<"the divisor is"<<divisor(a,b)<<"\n";
cout<<"the multiple is"<<multiple(a,b)<<"\n";
}

这回可以了,我又改了。总之你不能在函数里调它本身,我改成了跳转句loop;还有就是第一个if 不能在后加else,应去掉它。不然