求最大公约数,看一下哪有问题。

#include<stdio.h>
int main()
{int a,b,c,min;
scanf("%d%d\n",&a,&b);
if(a<b){a=min;}
else{b=min;}
c=min;
while(a%c!=0||b%c!=0)
{c--;
}
printf("%d\n",c);
return 0;
}

两处问题,见注释处,供参考:

#include<stdio.h>
int main()
{
   int a,b,c,min;
   scanf("%d%d",&a,&b);//scanf("%d%d\n",&a,&b); 这行多了 '\n'
   if(a<b){min=a;}   //a=min;
   else   {min=b;}   //b=min;
   c=min;
   while(a%c!=0 || b%c!=0)
   {
       c--;
   }
   printf("%d\n",c);
   return 0;
}

在比较a和b的大小时,应该是min=a或者min=b吧

你的min没有初始化,对a,b,c赋值会报错,作者的想法应该把ab中最小值给min吧,赋值语句是从右到左的,改为min=a,下面也如此就OK了

min没有初始化


#include<stdio.h>
int main()
{
    int m, n, temp, i;
    printf("Input 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("The GCD of %d and %d is: %d\n", m, n, i);
            break;
        }
    return 0;
}