原帖由 ly4885806 于 2005-12-28 19:30 发表
break;
}
}
if(j==1) printf("不存在最大公约数");
}
#include<stdio.h>
#define N 4 //宏定义 这里定义求4(N)个数的最大公约数
int min(int a[]); //用来寻找N个数最小的那一个数 并返回出来
int chan(int a[]); //用来判断一个数组中的元素是否都为0 ,是返回1 否则返回0
void main()
{
int a[N],i,j,t,p[N],q;
for(i=0;i<N;i++)
scanf("%d",a+i); //输入N个数
t=min(a); //找出最小的数
for(j=t;j>1;j--)
{
for(i=0;i<N;i++)
p=a%j; //将数组A中的数对J取余 将得到的数分别赋给数组P
q=chan(p); //调用函数 判断数组P中的数是否都为0
if(q) //用于判断
{
printf("成功,最大公约数为:%d\n",j);
break; //因为求最大公约数 所以找到一个立刻退出循环
}
}
if(j==1) printf("不存在最大公约数");//J=1时 表示没有找出最大公约数
}
int min(int a[])
{
int i,min=a[0];
for(i=0;i<N;i++)
if(min>*(a+i)) min=*(a+i);
return min;
}
int chan(int a[])
{
int i;
for(i=0;i<N;i++)
if(a!=0) return 0; //函数中只要执行了一个RETURN后 函数便立刻结束
return 1;
}
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |