为什么这个程序不能输出最大公因数?求解答

为啥根据这个课程的代码,在Dev-C输出的不是最大公因数呢?
#include<stdio.h>
int main()
{
int a,b;

int min;

scanf("%d %d", &a,&b);

if(a<b){

min = a;

} else {

min = b;

}

int ret = 0;

int i;

for(i=1;i<min;i++){

if(a%i==0){

if(b%i==0){

ret = i;

}

}

}

printf ("%d和%d的最大公约数是%d.\n",a, b, ret);
return 0;
}

修改如下,供参考:

#include<stdio.h>
int main()
{
   int a,b;
   int min;
   scanf("%d %d", &a,&b);
   if(a<b){
      min = a;
   } else {
      min = b;
   }
   int ret = 0;
   int i;
   for(i=min;i>0;i--){ //for(i=1;i<min;i++) 修改
       if(a%i==0){
          if(b%i==0){
             ret = i;
             break;   //修改
          }
       }
   }
   printf ("%d和%d的最大公约数是%d.\n",a, b, ret);
   return 0;
}

scanf("%d %d"&a&b);
改为

scanf("%d%d"&a&b);

去掉输入中的空格。