0
#include <stdio.h>
int gcd()
{
int i,j,rem;
printf("Enter two integers: ");
scanf("%d%d",&i,&j);
while (i !=0)
{
    rem = j % i;
    j=i;
    i=rem;
} 
 printf("Greatest common denominator is %d\n",j);
}
int main()
{    

    gcd();
    return 0;
}

「現代的なアプローチのCプログラミング 第2版」を使ってCを学んでいます。ユーザーから 2 つの数値を受け取り、gcd を返す関数を作成する必要があった演習の 1 つです。複数の数値を渡せるようにしたいのですが、C を使用してこれを実現する方法がわかりません。

4

1 に答える 1

0

数値を の配列として渡し、intgcd アルゴリズムを再帰的に (できれば) 適用することをお勧めします。

int gcd(int *array, int n)
{
    if(n == 0)
    {
        //find gcd using while loop of array[n] and array[n + 1]. store in result.
        return result;
    }
    return gcd(int *a, n -1);
}
于 2014-03-04T20:16:09.527 に答える