C语言求最大公约数 中遇到的错误能不能指导我一下

问题遇到的现象和发生背景

在第二个if调试时发生的 ,不知道为什么能帮忙解答下吗

img

用代码块功能插入代码,请勿粘贴截c

int main()
{
int a,b,c=1,d=0,max=0;
scanf("%d%d",&a,&b);
if(a>=b)
{
max=a;
}
else{
max=b;
}
for(;c
{
if(a%c==0&&b%c==0)
{
d=c;
}
else
{
d=a*b;
}

}
printf("%d",d);
return 0;

}

运行结果及报错内容

运行无结果

img

我想要达到的结果

求两个数最大公约数

修改如下,供参考:

#include <stdio.h>
int main()
{
    int a, b, c = 1, d = 0, max = 0;
    scanf("%d%d", &a, &b);
    if (a >= b)
    {
        max = b; //max = a;
    }
    else {
        max = a; //max = b;
    }
    for (c = max; c > 0; c--) //for (; c < max; c++)
    {
        if (a % c == 0 && b % c == 0)
        {
            d = c;
            break;
        }
        //else
        //{
        //    d = a * b;
        //}

    }
    printf("%d", d);
    return 0;
}


for倒序判断,满足条件就结束循环。把你输入内容截图看看