0

私は C の初心者で、2 つの数値を消費してそれらの gcd を返す ftn を作成しました。今、1 つの数値を消費するだけで、ポインタを使用して gcd を見つける方法を考えています。それを行う方法があれば誰か教えてもらえますか?どうも。

Example:
gcd(5) = 5 (gcd of 5 and itself)
gcd(10) = 5 (gcd of 10 and 5(from the last call))
gcd (4) = 1 (gcd of 4 and 5(from the last call))
gcd (7) = 1 (gcd of 7 and 1(from the last call))
4

2 に答える 2

1

ポインターを使用せずに、関数内で静的変数を使用します。

int PreviousGcd( int n )
{
    static int previous = -1 ; //pick a magic number


    if( previous == -1 )
    {
        previous = n ;
        return previous ;
    }
    else
    {
        int result = gcd( n  , previous ) ;
        previous = n ;
        return result ;
    }
}

本当にポインタが必要な場合は、 n代わりにのアドレスを渡すことができます。

于 2013-06-15T23:01:46.577 に答える