你求的是最小公約數,而不是最大公約數,
#include "stdio.h"
main()
{
  int a,b,c,d,t=0;
  scanf("%d%d\n",&a,&b);
   if(a>b) d=b;
     else d=a;
  for(c=d;c>1;c--)
  {if (a%c==0&&b%c==0) {d=c;t=1;}}
  if(t)  printf("%d",d);
  else printf("No answer");
}
根據你的例子改的,試試看吧,好久沒用c了。
#include<stdio.h>
main()
{
 int i,n,min,num[20];
 printf("n=");      /*输入你要判定的数字个数*/
 scanf("%d",&n);
 for(i=0;i<=n-1;i++)
 {
  scanf("%d",&num[i]);/*输入你要判定的数字,每个输入后回车*/
  printf("\n");
 }
 min=num[0];
 for(i=0;i<=n-1;i++)
  
 if(num[i]<=min)
  min=num[i];
 
 
 for(i=0;i<=n-1;)
 { 
 if(num[i]%min==0)
 {
    i++;
  continue;
 }
 else
 {
  min--;
  i=0;
   if(min==1)break;
  }
 }
 printf(min==1?"\nno result":"\nthe number is %d",min);
 
} 



 
											





 
	    

 
	
 
											

 alonefire你好!
alonefire你好!