Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

【C言語】数字パターンを出力するプログラムの作り方

プログラムの概要

数値パターンとは、「パターンルール」と呼ばれる規則に基づいて生成された数列のことです。パターンルールでは、1つまたは複数の数学的操作を用いて、数列内の連続する数値同士の関係を表現します。

C言語では、for文による繰り返し処理を組み合わせることで、このような規則性のある数字パターンを簡単に出力できます。本記事では、代表的な2種類のパターン(三角形型とひし形型)を出力するプログラムを紹介します。

パターンの例

パターン1(三角形型)

1
2 6
3 7 10
4 8 11 13
5 9 12 14 15

パターン1では、各行の先頭の数字が行番号と一致し、隣の要素は直前の値に「(5 − 列番号)」を加えたものになります。たとえば2行目は「2, 6」(2 + (5−1) = 6)、3行目は「3, 7, 10」(7 + (5−2) = 10)という規則で構成されています。

パターン2(ひし形型)

        1
      1 2 3
    1 2 3 4 5
  1 2 3 4 5 6 7
1 2 3 4 5 6 7 8 9
  1 2 3 4 5 6 7
    1 2 3 4 5
      1 2 3
        1

アルゴリズム

パターン1のロジック

  • i は行(Row)、j は列(Column)を表します。
  • 「5」は5行×5列のパターンを作成することを意味します。
  • 各行(i)ごとにループ処理を行います。
  • 変数 k を i の値で初期化します。
  • 各列(j)ごとにループ処理を行います。
  • 現在の列(j)に対応する値を計算して表示します。
  • k を「k + 5 − j」で更新し、次の列へ進みます。

パターン2のロジック

  • 1行目:「1」を表示
  • 2行目:「1 2 3」を表示
  • 3行目:「1 2 3 4 5」を表示
  • 4行目:「1 2 3 4 5 6 7」を表示
  • 5行目:「1 2 3 4 5 6 7 8 9」を表示
  • その後、5行目の下に4行目から1行目までと同じ内容を逆順に表示し、ひし形を完成させます。

サンプルコード

/* 数字パターンを出力するCプログラム */
#include<stdio.h>
int main(){
    int i,j,k;
    printf("Numeric Pattern 1");
    printf("\n");
    printf("\n");
    for(i=1;i<=5;i++){
        k = i;
        for(j=1;j<=i;j++){
            printf("%d ", k);
            k += 5-j;
        }
        printf("\n");
    }
    printf("\n");
    printf("Numeric Pattern 2");
    printf("\n");
    printf("\n");
    for(i = 1;i<=5;i++){
        for(j = i;j<5;j++){
            printf(" ");
        }
        for(k = 1;k<(i*2);k++){
            printf("%d",k);
        }
        printf("\n");
    }
    for(i = 4;i>=1;i--){
        for(j = 5;j>i;j--){
            printf(" ");
        }
        for(k = 1;k<(i*2);k++){
            printf("%d",k);
        }
        printf("\n");
    }
    getch();
    return 0;
}

getch() は古いコンパイラ(Turbo C など)専用の関数です。GCC などの最近の開発環境では、getch()getchar() に置き換えるか、該当行を削除して実行してください。

出力結果

【C言語】数字パターンを出力するプログラムの作り方

  1. C言語で正方行列をZ字形に表示するプログラム

    プログラムの概要本記事では、C言語を使って正方行列の要素を「Z」の字形に沿って出力するプログラムを解説します。正方行列とは、行数と列数が等しい行列のことです。n行n列の行列は「n次の正方行列」と呼ばれ、2×2、3×3、4×4などの行列が該当します。Z字形出力のアルゴリズム行列の要素をZ字形で表示するには、次の3つの部分を順番に出力します。最上行(1行目):左端から右端までのすべての要素対角成分:右上から左下へ向かう斜めの要素(両端の角は除く)最下行(最終行):すべての要素これらを順につなげると、アルファベットの「Z」の形が完成します。3×3の行列の場合: a00 a01 a02

  2. Cプログラムで行列を対角パターンに沿って数値出力する方法

    この課題は、n×nの行列を対角パターンで出力することです。 例えば n が 3 の場合、対角パターンに従って行列を出力すると、次のような配置になります。 そして、実際の出力結果は以下の通りです。 実行例 Input: 3 Output: 1 2 4 3 5 7 6 8 9 Input: 4 Output: 1 2 4 7 3 5 8 11 6 9 12 14 10 13 15 16 考え方 一見すると、「数値 n を受け取り n×n の行列を生成し、それを対角方向に走査しながら別の行列へ値を格納する」というアプローチが思い浮かびます