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列目」「最終列」のいずれかであれば星印を出力し、それ以外の内側の領域では空白を出力することで、中空の長方形が実現できます。
-
【C言語】数字パターンを出力するプログラムの作り方
プログラムの概要 数値パターンとは、「パターンルール」と呼ばれる規則に基づいて生成された数列のことです。パターンルールでは、1つまたは複数の数学的操作を用いて、数列内の連続する数値同士の関係を表現します。 C言語では、for文による繰り返し処理を組み合わせることで、このような規則性のある数字パターンを簡単に出力できます。本記事では、代表的な2種類のパターン(三角形型とひし形型)を出力するプログラムを紹介します。 パターンの例 パターン1(三角形型) 1 2 6 3 7 10 4 8 11 13 5 9 12 14 15 パターン1では、各行の先頭の数字が行番号と一致し、隣の要素は直前の値に「
-
C言語で鏡像の中空平行四辺形を出力するプログラムの書き方
本記事では、C言語を使ってコンソールに「鏡像(ミラー型)の中空平行四辺形」を出力する方法を解説します。まず平行四辺形の基本的な性質を確認した上で、具体的なアルゴリズムとサンプルコードを紹介します。 プログラムの説明 平行四辺形とは、向かい合う2組の辺がそれぞれ平行になっている四角形のことです。 平行四辺形には、押さえておくべき重要な性質が6つあります。 対辺は等しい(AB = DC)。 対角は等しい(∠D = ∠B)。 隣り合う角は補角の関係にある(∠A + ∠D = 180°)。 1つの角が直角であれば、すべての角が直角になる。 平行四辺形の対角線は互いに他方を二等分する。 各