这个求最大公约数的程序哪里错了?运行不出结果

来源:百度知道 编辑:UC知道 时间:2024/06/16 18:30:54
#include<iostream.h>
void main()
{
int a,b,i,x;
cin>>a>>b;

for(i=1;i<=(a>b)?b:a;i++)
{
if(a%i==0&&b%i==0) x=i;
}
cout<<endl;
cout<<x;

}

#include<stdio.h>
void main()
{
int a,b,i;
scanf("%d%d",&a,&b);
for(i=(a>b)?b:a;i>=1;i--)
{
if(a%i==0&&b%i==0)
{
printf("%d\n",i);
break;
}
}
}

你应该吧循环变量从小的那个数开始自减才会得到最大公约数

用短除