C语言:计算整数的最大公约数(函数)

问题描述
计算n个整数的最大公约数
要求:
1、用函数编写计算n个整数的最大公约数。
步骤:
首先假设第一个数为最大公约数,
假如能被所有的数整除,则为最大公约数
否则最大公约数-1;继续下一次判断。
2、编写输入n个整数的函数,并在main()中调用
int f(int a[],int n) /* 计算n个整数的最大公约数的函数*/
{
}
void input(int b[],int n) /* 输入n个元素到一维数组*/
{
}
3、用全局变量重做一次

输入
第一行为整数的个数n(n<100),第二行是n个用空格分开的整数。输出
输在单独的一行中输出一个整数,即对应的最大公约数。(以“%d\n",的格式输出)输入样列
4
15 36 9 21输出样例
3出处
ymc

已通过测试,望采纳
#include <stdio.h>
void input(int b[],int n);
int f(int a[],int n);
main()
{ int a[20],n,d;
scanf("%d",&n);
input(a,n);
d=f(a,n);
printf("%d\n",d);
}
int f(int a[],int n) /* 计算n个整数的最大公约数的函数*/
{ int t;
int i,flag=1;
for(t=a[0];;t--)
{ flag=1;
for(i=0;i<n&&flag==1;i++)
{ if(a[i]%t==0)
flag=1;
else
{ flag=0;
break;
}
}
if(flag==1)
goto m;
}
m:
return t;
}
void input(int b[],int n) /* 输入n个元素到一维数组*/
{ int i;
for(i=0;i<n;i++)
scanf("%d",&b[i]);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-16
n个整数,应该先a1a2计算最大公约数记为d,再d和a3算最大公约数记为d,依次下去
第2个回答  2012-04-16
a=num1;b=num2;
while(b!=0)
 {
  temp=a%b;
  a=b;
  b=temp;
 }
//while到最后 a就是最大公约数
//你可以先得出两个数的最大公约数,以此类推

C语言:计算整数的最大公约数(函数)
include <stdio.h> void input(int b[],int n);int f(int a[],int n);main(){ int a[20],n,d;scanf("%d",&n);input(a,n);d=f(a,n);printf("%d\\n",d);} int f(int a[],int n) \/* 计算n个整数的最大公约数的函数*\/ { int t;int i,flag=1;for(t=a[0];;...

C语言:设计一个函数,求两个整数的最大公约数。要求:函数类型是int. 函...
int maxys(int a,int b) \\\\找最大公约数函数 { int i,max; \\\\ 用max保存最大公约数 if(a>b){ for(i=1;i<b;i++){ if( (a%i==0)&&(b%i==0) ) \\\\找出他们的公约数 { max=i; \\\\最后公约数即为最大公约数 } } } if(a<b){ for(i=1;i...

C语言编程如何实现求两个整数的最大公约数?
以下是C语言实现求两个整数的最大公约数的示例代码:在上述代码中,我们定义了一个名为gcd的函数,用于求解两个整数的最大公约数。该函数使用递归的方式实现欧几里得算法。在主函数中,我们首先从用户输入中读取两个整数,然后调用gcd函数计算它们的最大公约数,并将结果输出到控制台。♡♡ ...

c语言求最大公约数
int i,a,b,t;scanf(%d%d,&a,&b);\/\/输入数a,b if(a>b)\/\/比较a,b大小,如果a>b则交换,结果为a= 2; i--)\/\/以较小的a为基数,每内次i减小1循环求最大公容约数 { if (a % i == 0 && b % i == 0)\/\/如果两数均能整除某数则该数为最大公约数 { printf(最大公约数...

编写一个c语言程序 求两个整数的最大公约数
下面给出一个使用C语言实现求两个整数的最大公约数的示例代码:```c include <stdio.h> int gcd(int a, int b);int main() { int a, b, result;printf("请输入两个整数:");scanf("%d %d", &a, &b);result = gcd(a, b);printf("两个数的最大公约数为:%d", result);return...

C语言编写程序计算两个正整数的最大公约数
DEV-CPP 5.4 C语言环境,通过编译运行 include<stdio.h>int max(int a,int b){ \/\/求最大公约数的函数 int i,k; for(i=1;i<=(a>b?b:a);i++) if(a%i==0&&b%i==0) k=i; return k;}int main(){ int a,b; scanf("%d%d",&a,&b); print...

c语言求两个数的最大公约数
4996)int main(){ \/\/更相减损法 int a = 0;int b = 0;printf("请输出两个整数:");scanf("%d%d", &a, &b);while ((a - b)!=0){ if (a > b){ a = a - b;} else{ b = b - a;} } printf("最大公约数为:%d\\n", b);system("pause");return 0;} ...

C语言中 用函数调用求最大公约数和最小公倍数
int gcd(int m, int n);int lcd(int m, int n);int main(){ int a, b;printf("输入两个正整数:");scanf("%d%d", &a, &b);printf("%d 和 %d 最大公约数为%d\\n", a, b, gcd(a, b));printf("最小公倍数为:%d\\n", lcd(a, b));} int gcd(int m, int n){ int...

C语言,编写两个函数,分别求两个正整数的最大公约数和最小公倍数,结果...
int gcd(int x,int y)\/\/最大公约数 { if (y==0)return x;else return gcd(y,x%y);} int lcd (int x,int y,int z)\/\/最小公倍数 { return x*y\/z;} int main(){ int a,b,c;scanf("%d%d",&b,&c);int d=gcd(b,c);printf("%d %d",d,lcd(b,c,d));return 0;} ...

C语言函数编写,求两个整数的最大公约数和最小公倍数
编写该程序的整体思路:分别定义最大公约数函数和最小公倍数函数,然后再main函数里面调用它。C语言实现代码如下:include<stdio.h> include<math.h> int fun_gy(int,int); \/\/声明最大公约数函数 int fun_gb(int,int); \/\/声明最小公倍数函数 main(){ int a,b,gy,gb;printf("输入两个...

相似回答