如果您想使用递归。
#include<stdio.h>
#include<string.h>
int GCD(int numbers[], int count)
{
if (count==1)
return numbers[0];
int i, j, min, x, y;
x = numbers[0];
y = numbers[1];
min = (x>y)?x:y;
for(i=min;i>=1;--i){
if(x%i==0 && y%i==0){
int newNumbers[count-1];
newNumbers[0]=i;
for (j=1; j<count-1; j++) {
newNumbers[j] = numbers[j+1];
}
return GCD(newNumbers, count-1);
}
}
return 0;
}
int main(int argc, const char * argv[]) {
//Declared variables here and print statements
int i;
printf("Number of command line args is %d\n", argc);
printf("The GCD is:\t");
int numbers[argc];
for(i=1;i<argc;i++){
numbers[i]=atoi(argv[i]);
}
int result = GCD(numbers, argc);
printf("%d\n", result);
}