
アッカーマン関数の値を出力するプログラム
#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);
}
この関数を呼び出した回数も出力するようにしたいのですが、どうしたらいいのでしょうか?

No.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を印字します。

No.1
- 回答日時:
1)グローバル変数int count = 0;を用意して、
関数に入った所で、count++;
2)関数内に静的局所変数static int count = 0;を用意して、
関数に入った所で、count++;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
最早開始時間と最遅完了時刻を...
-
【C++】関数ポインタの使い方
-
C言語 エラーの原因がわからな...
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語での奇数の和
-
Haskellで関数を合成しようとす...
-
式は定数値が必要です」という...
-
C言語での引数の省略方法
-
未解決の外部シンボル _printf...
-
CStringの配列要素を関数で受け...
-
「指定されたキャストは有効で...
-
return 1L
-
複数桁10進数の*桁目だけを抽出...
-
任意の文字列のアルファベット...
-
入力された数字を大きい順に並...
-
C言語のプログラム作成について
-
【C++】行列データの読み込み
-
2次元配列とポインタの引数受け...
-
数字列を3桁ごとにカンマで区切...
-
C言語 配列と関数の練習問題
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
#define _CRT_SECURE_NO_WARNIN...
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
【C++】関数ポインタの使い方
-
C言語 エラーの原因がわからな...
-
複数桁10進数の*桁目だけを抽出...
-
return 1L
-
if と配列の組み合わせ
-
ラップ関数とはどんなものですか?
-
式は定数値が必要です」という...
-
数字列を3桁ごとにカンマで区切...
-
実数の整数部,小数部の取得
-
C言語でDxlibを使って3x3の奇数...
-
プログラムについて(UNIX)
-
acceptをalarmでタイムアウトさ...
-
C言語の課題です
-
エラー 添字が付けられた値が、...
-
CStringの配列要素を関数で受け...
-
最早開始時間と最遅完了時刻を...
-
入力された数字を大きい順に並...
おすすめ情報