如何用c语言输入n个正整数,求出这n个数的所有公约数
时间: 2024-03-25 09:39:06 浏览: 16
可以使用C语言的循环和条件语句来实现输入n个正整数并求出所有公约数的功能。具体实现步骤如下:
1. 首先需要从用户处输入正整数n,表示接下来要输入的数的个数。
2. 使用循环语句输入这n个正整数,并存储到一个数组中。
3. 对于这n个数,可以使用两层循环来枚举所有可能的公约数。外层循环枚举第一个数,内层循环枚举第二个数,并且需要保证第二个数不小于第一个数。
4. 在内层循环中,使用条件语句判断第一个数和第二个数是否有公约数。如果有,则输出这个公约数。
下面是实现上述功能的C语言代码示例:
```c
#include <stdio.h>
int main()
{
int n, i, j;
printf("请输入正整数个数n:");
scanf("%d", &n);
int nums[n];
printf("请输入%d个正整数:\n", n);
for(i = 0; i < n; i++) {
scanf("%d", &nums[i]);
}
printf("所有公约数为:\n");
for(i = 0; i < n; i++) {
for(j = i+1; j < n; j++) {
int a = nums[i], b = nums[j];
int k;
for(k = 1; k <= a && k <= b; k++) {
if(a % k == 0 && b % k == 0) {
printf("%d ", k);
}
}
}
}
printf("\n");
return 0;
}
```
需要注意的是,这里使用了一个变长数组来存储输入的n个正整数,需要在编译器支持变长数组的情况下才能编译通过。