c语言求最大公约数为什么结果出不来

img

img


int m,n,i;
printf("输入两个正整数m n(m<n)");
scanf("%d%d",&m,&n);
for(i=n-1;i<=(n-1)&&i>0;i--)
{
if(n%i==0&&m%i==0)
printf("最大公约数是%d\n",i);
break;
}

if 语句后面添加大括号,否则for循环第一次就break 了,如下:

if(n%i==0&&m%i==0){
printf("最大公约数是%d\n",i);
break;
}


#include<stdio.h>
int main()
{
    int m, n, temp, i;
    printf("输入两正整数m (m<n)");
    scanf("%d%d", &m, &n);
    if(m<n)  /*比较大小,使得m中存储大数,n中存储小数*/
    { /*交换m和n的值*/
        temp=m;
        m=n;
        n=temp;
    }
    for(i=n; i>0; i--)  /*按照从大到小的顺序寻找满足条件的自然数*/
        if(m%i==0 && n%i==0)
        {/*输出满足条件的自然数并结束循环*/
            printf("%d\n",i);
            break;
        }
   
    return 0;
}