C++利用辗转相除法求2数最大公约数

来源:百度知道 编辑:UC知道 时间:2024/09/23 05:13:05
#include <iostream.h>
void main()
{
int x,y,c;
cout<<"please input 2 numbers: "<<endl;
cin>>x>>y;
if(x>y)
{
while(y!=0)
{
c=x%y;
x=y;
y=c;
}
cout<<"最大公约数为:"<<y<<endl;
}
else
{
while(x!=0)
{
c=y%x;
y=x;
x=c;
}
cout<<"最大公约数为:"<<x<<endl;
}
}
这个错在哪里了?应该改成什么样?

#include <iostream.h>
void main()
{
int x,y,c;
cout<<"please input 2 numbers: "<<endl;
cin>>x>>y;
if(x>y)
{
while(y!=0)
{
c=x%y;
x=y;
y=c;
}
cout<<"最大公约数为:"<<x<<endl; //这里输出x, y恒=0
}
else
{
while(x!=0)
{
c=y%x;
y=x;
x=c;
}
cout<<"最大公约数为:"<<y<<endl; //这里输出y, x恒=0
}
}

x, y 反了