C言語のきほん「タイトルがついた九九の表を表示しよう(改良版)」

スポンサーリンク
コンピューター IT系

以前、本ブログで、「縦横のタイトルがついた九九の表を表示するC言語のプログラム」をご紹介した。

今回は、このプログラムを改良してみよう。

改良ポイント

  1. マクロ定義を使って定数管理
    • 九九の上限(9)をマクロで定義すると、変更が簡単になる。
  2. 整った出力のための整形
    • タイトルや区切り線の出力を関数にして再利用性を高める。
  3. 関数分離
    • 表の出力処理を関数に分離することで、main関数の見通しを良くする。
  4. コメントの追加
    • コードの意図を明確にするコメントを加えると、読み手が理解しやすくなる。
#include <stdio.h>

#define MAX 9  // 九九の上限

// タイトル行を表示
void print_header(void) {
    printf("   |");
    for (int i = 1; i <= MAX; i++)
        printf("%3d", i);
    putchar('\n');
    
    // 区切り線
    printf("---+");
    for (int i = 1; i <= MAX; i++)
        printf("---");
    putchar('\n');
}

// 九九表を表示
void print_table(void) {
    for (int i = 1; i <= MAX; i++) {
        printf("%2d |", i);
        for (int j = 1; j <= MAX; j++)
            printf("%3d", i * j);
        putchar('\n');
    }
}

int main(void)
{
    print_header();
    print_table();
    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

このように関数化・定数化・整形により、可読性と再利用性が高まり、後で拡張(たとえば MAX を12にして12×12表に)もしやすくなる。

(参考文献)新・明解C言語 入門編 第2版 柴田望洋著(SBクリエイティブ)

コメント

タイトルとURLをコピーしました