求最大公约数 觉得程序没问题 但是运行出来最大公约数始终为0

求最大公约数 觉得程序没问题 但是运行出来最大公约数始终为0

问题描述:

#include stdio.h>

int main()

int a, b;
int min;
int x=0;
printf(“请输入两个整数数:“);
scanf("%d, %d", &a, &b) ;
if (a‹b)
{
min=a;
}
else
{min=b;
}
for (int i=1;i<min;i++)

if(a%i==0&&b%i==0)
{x=i;

}
printf(“最大公约数为%d",x);
return 0;
}

你这个肯定是0啊,for循环第一次就结束了。你从1开始判断,对1取余肯定是等于0的。而且是求最大公约数,那么应该是min开始判断,然后循环减一判断才行。

scanf()输入多加了个逗号

单步调试,看输入之后a,b的值。