我在编写一个寻找最大公约数的程序,运行过程中循环出了问题

直接上代码

#include<stdio.h>
int main()
{
    int a, b;
    int min;

    scanf_s("%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;
}

运行结果如下

img


他就莫名其妙出了一个0,调试过后发现运行时到第二个if那里直接跳出循环,直接到printf那里。就感觉很离谱,我也看不出来是哪里的问题,代码我是在网课上发现的,我自己按着写就出了问题。

for循环后面多了分号,去掉