要素数がnである配列aの全要素の最大公約数を求める以下の関数を作成せよ。 int gcdary (int a [], int n ); |
/* 演習5-3 配列の全要素の最大公約数を求める */ #include <stdio.h> /*--- 整数値x, yの最大公約数を返却する ---*/ int gcd(int x, int y) { if (y == 0) return (x); else return (gcd(y, x % y)); } /*--- 要素数nの配列aの全要素の最大公約数を求める ---*/ int gcdary(int a[], int n) { if (n == 1) return (a[0]); else if (n == 2) return (gcd(a[0], a[1])); else return (gcd(a[0], gcdary(&a[1], n - 1))); } int main(void) { int i; int x[7]; int nx = sizeof(x) / sizeof(x[0]); printf("%d個の整数を入力せよ。\n", nx); for (i = 0; i < nx; i++) { printf("x[%d] : ", i); scanf("%d", &x[i]); } printf("最大公約数は%dです。\n", gcdary(x, nx)); return (0); }