2.6 例題(2)

  2.例題2-12 数字を文字列として印刷する関数(再帰版)
 上の例題2-1のprintdを再帰的に表現した物が以下のプログラムです。このプログラムでは10で割った商に対して関数を再帰的に適用し、そのあと最後の桁を出力しています。
<プログラムリスト>

#include <stdio.h>


void printd(int num);

int main(void){
  int  num;

  scanf("%d", &num); # 数列の読み込み
  printd(num);
  putchar('\n');
}

void printd(int num){
  int  i;

  if (num < 0) {
    putchar('-');
    num = -num;
  }


  i = num / 10;
  if (i != 0){
    printd(i);
  }
  putchar(num % 10 + '0');
}

2002年12月18日 11:43 更新