C言語

【C言語】九九の一覧を作成する


プログラミング初心者向けの練習問題として「九九の一覧の作成」があります。

今回はそのプログラムの作成方法について解説します。

実際にプログラムを作成してみる

早速ですが、実際にプログラムを作成していきます。

プログラム作成の手順

プログラム作成の手順は以下の通りです。

  1. 変数i、jを定義する(1で初期化)
  2. jの値を1ずつ増やしながらi*jの計算を行う
  3. iの値を1ずつ増やしながら2の流れを繰り返す

実装例

上記の手順に従ってプログラムを作成します。

#include <stdio.h>

int main(void){

  /* 変数を定義する */
  int i, j;

  /* 二重ループで九九の一覧表を出力する */
  for(i=1; i<10; i++){
    for(j=1; j<10; j++){
      printf("%3d", i*j);
    }
    printf("\n");
  }
  return 0;
}

このプログラムを実行すると以下の出力結果が得られます。

  1  2  3  4  5  6  7  8  9
  2  4  6  8 10 12 14 16 18
  3  6  9 12 15 18 21 24 27
  4  8 12 16 20 24 28 32 36
  5 10 15 20 25 30 35 40 45
  6 12 18 24 30 36 42 48 54
  7 14 21 28 35 42 49 56 63
  8 16 24 32 40 48 56 64 72
  9 18 27 36 45 54 63 72 81

より見やすい表を作成するプログラム

上記のプログラムでも処理としては十分ですが、もっと見やすい表を作成するプログラムにすることも可能です。

その方法についても紹介しておきましょう。

改善策

上記のプログラムをより見やすくするための改善策としては以下のようなものが挙げられます。

  1. 各変数の値を表示する
  2. 補助線を引く

実装例

上記の改善策を採用してプログラムを作成します。

#include <stdio.h>

int main(void){
  /* 変数を定義する */
  int a, b, i, j;

  /* 各変数の値を表示する */
  printf("   |");
  for(a=1; a<10; a++){
    printf("%3d", a);
  }
  printf("\n");

  /* 補助線を表示する */
  for(b=1; b<32; b++){
    printf("-");
  }
  printf("\n");

  /* 二重ループで九九の一覧表を出力する */
  for(i=1; i<10; i++){
    printf("%3d|",i);
    for(j=1; j<10; j++){
      printf("%3d", i*j);
    }
    printf("\n");
  }
  return 0;
}

このプログラムを実行すると以下の出力結果が得られます。

   |  1  2  3  4  5  6  7  8  9
-------------------------------
  1|  1  2  3  4  5  6  7  8  9
  2|  2  4  6  8 10 12 14 16 18
  3|  3  6  9 12 15 18 21 24 27
  4|  4  8 12 16 20 24 28 32 36
  5|  5 10 15 20 25 30 35 40 45
  6|  6 12 18 24 30 36 42 48 54
  7|  7 14 21 28 35 42 49 56 63
  8|  8 16 24 32 40 48 56 64 72
  9|  9 18 27 36 45 54 63 72 81