你求的是最小公約數,而不是最大公約數,
#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);
}