C语言求数组最大公约数代码
时间: 2024-10-22 22:23:46 浏览: 22
辗转相除法求最大公约数,计算过程说明和C语言实现
在C语言中,我们可以使用欧几里得算法(也称为辗转相除法)来计算两个整数的最大公约数(GCD),然后通过循环这个过程来处理整个数组。下面是一个简单的C程序示例:
```c
#include <stdio.h>
// 计算两个整数的最大公约数
int gcd(int a, int b) {
if (b == 0)
return a;
else
return gcd(b, a % b);
}
// 找出数组中所有元素的最大公约数
int find_gcd(int arr[], int n) {
int result = arr[0];
for (int i = 1; i < n; i++) {
result = gcd(result, arr[i]);
}
return result;
}
int main() {
int arr[] = {48, 18, 72, 96};
int n = sizeof(arr) / sizeof(arr[0]);
int max_gcd = find_gcd(arr, n);
printf("The greatest common divisor of the array elements is: %d\n", max_gcd);
return 0;
}
```
在这个例子中,`gcd()`函数递归地计算两个数的最大公约数,而`find_gcd()`函数则遍历数组并将每个元素与当前结果求最大公约数,最后返回整个数组的最大公约数。
阅读全文