C言語で中実(塗りつぶし)・中空の正方形パターンを出力するプログラム
プログラムの概要
幾何学において、正方形とは正多角形の一種で、4つの等しい辺と4つの等しい角を持つ図形です。本記事では、C言語を使って「中実(塗りつぶし)の正方形」と「中空の正方形」の2種類のパターンをアスタリスク(*)で出力する方法を解説します。
完成した出力イメージは以下のようになります。

アルゴリズム
中実の正方形の場合
1. ユーザーから正方形を描くための行数を入力してもらう 2. 各行ごとに、すべての列に対して「*」を出力する
中空の正方形の場合
1. ユーザーから正方形を描くための行数を入力してもらう 2. 最初の行と最後の行は、すべての列に「*」を出力する 3. 残りの行では、最初の列と最後の列にだけ「*」を出力し、それ以外は空白を出力する
サンプルコード
以下が、中空と中実の両方の正方形パターンを出力するC言語のプログラムです。
/* 中空と中実の正方形パターンを出力するプログラム */
#include <stdio.h>
int main(){
int r, c, rows; // 中空の正方形用
int r1,c1, rows1; // 中実の正方形用
clrscr();
/* 中空の正方形 */
printf("Enter the Number of rows for Hollow Square: ");
scanf("%d", &rows);
printf("\n");
for (r=1; r<=rows; r++){
if (r==1 || r==rows){
for (c=1; c<=rows; c++){
printf("*");
}
}
else{
for (c=1; c<=rows; c++){
if (c==1 || c==rows){
printf("*");
}
else{
printf(" ");
}
}
}
printf("\n");
}
printf("\n");
/* 中実の正方形 */
printf("Enter the Number of rows for Solid Square: ");
scanf("%d", &rows1);
printf("\n");
for (r1=1; r1<=rows1; r1++){
for (c1=1; c1<=rows1; c1++){
printf("*");
}
printf("\n");
}
getch();
return 0;
}プログラムのポイント
- 中空の正方形:外側のループで行を制御し、1行目・最終行はすべて「*」を表示します。それ以外の行では、条件分岐(if文)を使って1列目と最終列だけ「*」を、間は空白を出力することで枠線のみの形状を作っています。
- 中実の正方形:二重ループですべてのマスに「*」を出力するだけで、シンプルに実装できます。
なお、clrscr() や getch() はTurbo Cなど古いコンパイラ固有の関数です。GCCなどの現代の環境では削除するか、getch() の代わりに getchar() を使用してください。
実行結果
このプログラムを実行すると、入力した行数に応じて以下のような正方形パターンが表示されます。

二重ループと条件分岐の組み合わせは、星形パターン出力の基本となるテクニックです。この正方形パターンをマスターすれば、ひし形や三角形など、より複雑なパターン描画にも応用できます。
-
C言語で配列の下三角行列と上三角行列を出力するプログラム
プログラムの説明 本記事では、入力された配列(行列)から下三角行列と上三角行列を出力するC言語のプログラムを紹介します。 三角行列とは 三角行列とは、下三角行列または上三角行列のいずれかに該当する行列の総称です。 下三角行列 正方行列において、主対角線より上側のすべての要素が0である行列を「下三角行列」と呼びます。 上三角行列 正方行列において、主対角線より下側のすべての要素が0である行列を「上三角行列」と呼びます。 次のような形状を持つ行列は下三角行列(左三角行列)と呼ばれます。 $${\displaystyle L={\begin{bmatrix}\ell _{1,1}&&&&0\\\e
-
C++で中空ピラミッドとダイヤモンドパターンを出力するプログラムの作り方
この記事では、C++を使って中空(ホロー)のピラミッドとダイヤモンドのパターンを生成する方法を解説します。塗りつぶし(ソリッド)のピラミッドパターンは比較的簡単に作成できますが、中空にするにはいくつかの工夫が必要です。ポイントは、ループと条件分岐を組み合わせて「星を出す位置」と「空白を入れる位置」を制御することです。 中空ピラミッドの出力 ピラミッドでは、1行目に星(*)を1つだけ出力し、最終行にはn個の星を連続して出力します。それ以外の行では、行頭と行末にちょうど2つの星を出力し、その間は空白で埋めます。これにより、輪郭だけの中空ピラミッドが完成します。 サンプルコード #include &