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

C言語で中空の長方形の星形パターン(*)を出力するプログラムの作り方

本記事では、C言語においてforループを使って中空の長方形の星形(*)パターンを出力する方法を詳しく解説します。

まず、以下の実行例を見てみましょう。

入力例と出力例

入力

Enter number of rows: 5

出力

*****
*   *
*   *
*   *
*****

このように、外枠のみが星印(*)で描かれ、内部が空白になった中空の長方形が出力されます。

アルゴリズム

forループを使用して中空の長方形の星形パターンを出力するための手順は以下の通りです。

ステップ1 − プログラムの実行時に行数を入力として受け取ります。

ステップ2 − 外側のforループで、行を1からNまで繰り返し処理します。

for(i=1; i<=N; i++)

ステップ3 − 内側のforループで、列を1からNまで繰り返し処理します。

for(j=1; j<=N; j++)

ステップ4 − 内側のループの中で、最初の行・最後の行・最初の列・最後の列のいずれかに該当する場合は星印(*)を出力します。
それ以外の位置には空白を出力します。

ステップ5 − 1行分のすべての列の出力が完了したら、改行して次の行へ移動します。

サンプルプログラム

以下は、forループを使用して中空の長方形の星形パターンを出力するCプログラムです。

#include <stdio.h>
int main(){
    int i, j, N;
    printf("Enter number of rows: ");
    scanf("%d", &N);
    for(i=1; i<=N; i++) {
        for(j=1; j<=N; j++){
            if(i==1 || i==N || j==1 || j==N){
                printf("*");
            }
            else{
                printf(" ");
            }
        }
        printf("\n");
    }
    return 0;
}

実行結果

上記のプログラムを実行すると、以下のような結果が得られます。

Enter number of rows: 6
******
*    *
*    *
*    *
*    *
******

プログラムのポイント

このプログラムの核となるのは、条件式 i==1 || i==N || j==1 || j==N の部分です。現在の位置が「1行目」「最終行」「1列目」「最終列」のいずれかであれば星印を出力し、それ以外の内側の領域では空白を出力することで、中空の長方形が実現できます。

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

    プログラムの概要 数値パターンとは、「パターンルール」と呼ばれる規則に基づいて生成された数列のことです。パターンルールでは、1つまたは複数の数学的操作を用いて、数列内の連続する数値同士の関係を表現します。 C言語では、for文による繰り返し処理を組み合わせることで、このような規則性のある数字パターンを簡単に出力できます。本記事では、代表的な2種類のパターン(三角形型とひし形型)を出力するプログラムを紹介します。 パターンの例 パターン1(三角形型) 1 2 6 3 7 10 4 8 11 13 5 9 12 14 15 パターン1では、各行の先頭の数字が行番号と一致し、隣の要素は直前の値に「

  2. C言語で鏡像の中空平行四辺形を出力するプログラムの書き方

    本記事では、C言語を使ってコンソールに「鏡像(ミラー型)の中空平行四辺形」を出力する方法を解説します。まず平行四辺形の基本的な性質を確認した上で、具体的なアルゴリズムとサンプルコードを紹介します。 プログラムの説明 平行四辺形とは、向かい合う2組の辺がそれぞれ平行になっている四角形のことです。 平行四辺形には、押さえておくべき重要な性質が6つあります。 対辺は等しい(AB = DC)。 対角は等しい(∠D = ∠B)。 隣り合う角は補角の関係にある(∠A + ∠D = 180°)。 1つの角が直角であれば、すべての角が直角になる。 平行四辺形の対角線は互いに他方を二等分する。 各