#include <stdio.h> void func(int n) { if (n == 0) { printf("n が 0 なので再帰を停止\n"); return; } printf("n の値:%d,再帰呼び出し前の処理\n", n); func(n - 1); printf("n の値:%d,再帰呼び出し間の処理\n", n); func(n - 1); printf("n の値:%d,再帰呼び出し後の処理\n", n); return;} int main(void) { int n; scanf("%d", &n); func(n); return 0;}
2
n の値:2,再帰呼び出し前の処理 n の値:1,再帰呼び出し前の処理 n が 0 なので再帰を停止 n の値:1,再帰呼び出し間の処理 n が 0 なので再帰を停止 n の値:1,再帰呼び出し後の処理 n の値:2,再帰呼び出し間の処理 n の値:1,再帰呼び出し前の処理 n が 0 なので再帰を停止 n の値:1,再帰呼び出し間の処理 n が 0 なので再帰を停止 n の値:1,再帰呼び出し後の処理 n の値:2,再帰呼び出し後の処理
The brand new service which powers Ideone!
Widget for compiling and running the source code in a web browser!