編譯器顯示無錯誤警告,可是運行不了
#include<iostream>
using namespace std; ? ? ? ? ? ? ? //這段代碼實現求兩個數的最大公約數與最小公倍數
void Hcf(int x,int y);
void Lcm(int s,int t);
void main()
{
?int i,j;
?cin>>i>>j;
?Hcf(i,j);
?Lcm(i,j);
}
int sum;?????????? //定義sum為局外變量
void Hcf(int x,int y)
{
?int a,b,c,d;
?int sum=1;
?a=x>y?y:x;
?b=2;
?while(b<=a)
?{
??c=x/b;
??d=y/b;
??if(c==0&&d==0)
??{
???sum*=b;
???x/=b;
???y/=b;
??}
??else
??{
???break;
??}
?}
?cout<<"最大公約數為"<<sum<<endl;
}
void Lcm(int s,int t)
{
?int k;
?k=s*t/sum;
?cout<<"最小公倍數為"<<k<<endl;
}