C++写了一个求两个数的最大公约数和最小公倍数,但是出错了

问题如图,直接系统提示运行错误……
运行程序后我输入测试数据就直接炸了图片图片

while(b!=0)这才是条件#include

void main() /* 辗转相除法求最大公约数 /

{

int m, n, a, b, t, c;

printf("Input two integer numbers:\n");

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

m=a; n=b;

while(b!=0) /
余数不为0,继续相除,直到余数为0 */

{ c=a%b; a=b; b=c;}

printf("The largest common divisor:%d\n", a);

printf("The least common multiple:%d\n", m*n/a);

}

20行max被c赋值为0,22行再去除它,直接报错啊!