アプリ版:「スタンプのみでお礼する」機能のリリースについて

アッカーマン関数の値を出力するプログラム
#include
void main(void);
int ack(int,int);

void main(void)
{
int x,y,i;
printf(" data(x) = "); scanf("%d",&x);
printf(" data(y) = "); scanf("%d",&y);
i = ack(x,y);
printf("Ackerman = %d\n",i);
}

int ack(int a,int b)
{
int k;
if (a == 0)
k = b+1;
else if (b == 0)
k = ack(a-1,1);
else
k = ack(a-1,ack(a,b-1));
return (k);
}

この関数を呼び出した回数も出力するようにしたいのですが、どうしたらいいのでしょうか?

A 回答 (2件)

もっとも手っ取り早い方法は、以下の方法です。

(#1のかたの1)の方法の具体例になります。)
int kaisu = 0;を
void main(void)の上で定義します。

int kaisu = 0;
void main(void) のようになります。

int ack(int a,int b)
の関数の実行文の先頭に
kaisu++;を記述します。

mainがactを呼び出した後で、kaisuを印字します。
    • good
    • 0

1)グローバル変数int count = 0;を用意して、


関数に入った所で、count++;

2)関数内に静的局所変数static int count = 0;を用意して、
関数に入った所で、count++;
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!