关于for循环的问题,哪里有问题?

for(i=1;i<a&&i<b;i++)
{if(a%i==0&&b%i==0)
m=i;}
printf("the max is %d\n",m);
比如a 输入6,b输入8;为什么结果为1?不应该是2吗?

代码没有问题,除非输入有问题,给出完整代码。

算法不正确
当i=8时,(a%i==0&&b%i==0)= false, m没有赋值。

#include
int main(void)

{
int m,a,b,i;
scanf("%d %d",&a,&b);
for( i = 1;i<a && i<b;i++)
{
if ( a%i == 0 && b%i == 0)
m = i;
}
printf("the max is %d\n",m);
return 0;
}****