C言語で鏡像の中空平行四辺形を出力するプログラムの書き方
本記事では、C言語を使ってコンソールに「鏡像(ミラー型)の中空平行四辺形」を出力する方法を解説します。まず平行四辺形の基本的な性質を確認した上で、具体的なアルゴリズムとサンプルコードを紹介します。
プログラムの説明
平行四辺形とは、向かい合う2組の辺がそれぞれ平行になっている四角形のことです。

平行四辺形には、押さえておくべき重要な性質が6つあります。
- 対辺は等しい(AB = DC)。
- 対角は等しい(∠D = ∠B)。
- 隣り合う角は補角の関係にある(∠A + ∠D = 180°)。
- 1つの角が直角であれば、すべての角が直角になる。
- 平行四辺形の対角線は互いに他方を二等分する。
- 各対角線は平行四辺形を2つの合同な三角形に分割する。

アルゴリズム
- ユーザーから行数と列数を受け取り、それぞれ変数
rowsとcolsに格納します。 - 行を繰り返し処理するために、
for(r=1; r<=rows; r++)という形式の外側のループを実行します。 - 空白を出力するために、
for(c=1; c<r; c++)という形式の内側のループを実行し、このループ内で半角スペースを1つずつ出力します。これにより行ごとに段差ができ、鏡像のような傾いた形状が表現されます。 - 中空の平行四辺形を星印(*)で描くために、
for(c=1; c<=cols; c++)という形式のもう1つの内側のループを実行します。このループ内では、r==1、r==rows、c==1、c==colsのいずれかの条件を満たす場合にのみ星印を出力します。 - 1行分のすべての列の出力が終わったら、改行を出力して次の行へ移ります。
サンプルコード
// 鏡像の中空平行四辺形を出力するCプログラム
#include <stdio.h>
int main(){
int rows,cols,r,c;
clrscr(); /*画面をクリア*/
printf("Please enter the number of Rows: ");
scanf("%d", &rows);
printf("\n");
printf("Please enter the number of Columns: ");
scanf("%d", &cols);
printf("\n");
printf("The Mirrored Hollow Parallelogram is: ");
printf("\n");
for(r = 1; r <= rows; r++){
// 空白を表示
for(c = 1; c < r; c++) {
printf(" ");
}
// 中空平行四辺形を表示
for(c = 1; c <= cols; c++) {
if (r == 1 || r == rows || c == 1 || c == cols) {
printf("*");
}
else {
printf(" ");
}
}
printf("\n");
}
getch();
return 0;
}
実行結果
このプログラムを実行すると、入力した行数・列数に応じて、左側に空白による段差を持った鏡像の中空平行四辺形が表示されます。外周のみが星印で描かれ、内部は空白になります。


-
C言語で正方行列をZ字形に表示するプログラム
プログラムの概要本記事では、C言語を使って正方行列の要素を「Z」の字形に沿って出力するプログラムを解説します。正方行列とは、行数と列数が等しい行列のことです。n行n列の行列は「n次の正方行列」と呼ばれ、2×2、3×3、4×4などの行列が該当します。Z字形出力のアルゴリズム行列の要素をZ字形で表示するには、次の3つの部分を順番に出力します。最上行(1行目):左端から右端までのすべての要素対角成分:右上から左下へ向かう斜めの要素(両端の角は除く)最下行(最終行):すべての要素これらを順につなげると、アルファベットの「Z」の形が完成します。3×3の行列の場合: a00 a01 a02
-
【初心者向け】平行四辺形の外周(周長)を計算するC言語プログラム
本記事では、2つの辺の長さが与えられた平行四辺形の外周(周囲の長さ)を計算し、その結果を表示するC言語プログラムを紹介します。数式の考え方からアルゴリズム、実際のコードまで順を追って解説していきます。 平行四辺形とは? 平行四辺形とは、次のような性質を持つ四角形の一種です。 向かい合う2組の辺がそれぞれ平行である 向かい合う角の大きさが互いに等しい 2本の対角線が互いの中点で交わる 下の図では、「a」と「b」が平行四辺形の隣り合う2つの辺の長さを表しています。 平行四辺形の外周の求め方 平行四辺形の外周(周長)は、次の式で定義されます。 外周 = 2 × (a + b) = 2 ×