C语言求多个数的最大公约数
时间: 2024-01-26 13:03:25 浏览: 62
以下是一个求多个数的最大公约数的C语言程序:
```c
#include <stdio.h>
int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
int main() {
int n;
printf("请输入数字个数:");
scanf("%d", &n);
int nums[n];
printf("请输入%d个数字:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
int result = nums[0];
for (int i = 1; i < n; i++) {
result = gcd(result, nums[i]);
}
printf("这%d个数字的最大公约数是:%d\n", n, result);
return 0;
}
```
程序中,我们首先定义了一个函数`gcd`来求两个数的最大公约数,这个函数是使用辗转相除法来实现的。
然后在`main`函数中,我们先读取输入的数字个数和数字,然后遍历所有数字,每次都用`gcd`函数来求当前数字和前面所有数字的最大公约数,最终得到这些数字的最大公约数。
注意,程序中假设输入的数字都是正整数。如果需要处理负数或0,需要进行额外的判断和处理。
阅读全文