C言語でピラミッド型パターンを表示するプログラム
プログラムの概要
ピラミッドとは、多角形の底面と、頂点(アペックス)と呼ばれる1点を結ぶことで形成される多面体です。底面の各辺と頂点を結んだ三角形は「側面」と呼ばれます。ピラミッドは、多角形を底面とする錐体の一種であり、底面が n 辺形であるピラミッドは、頂点が n+1 個、面が n+1 枚、辺が 2n 本あるという特徴を持ちます。また、すべてのピラミッドは自己双対であることも知られています。

アルゴリズム
ユーザーからピラミッドの段数(行数)を入力してもらう 指定された行数に達するまでループを繰り返す: 1行目には星(*)を1つ表示する 行数に応じて星の数を増やしていく
サンプルコード
/* ピラミッドパターンを表示するプログラム */
#include<stdio.h>
int main() {
int r, s, rows=0;
int t=0;
clrscr();
printf("ピラミッドの段数を入力してください: ");
scanf("%d", &rows);
printf("\n");
printf("入力された段数によるピラミッドパターン:");
printf("\n\n");
for(r=1;r<=rows;++r,t=0) {
for(s=1; s<=rows-r; ++s){
printf(" ");
}
while (t!=2*r-1) {
printf("* ");
++t;
}
printf("\n");
}
getch();
return 0;
}
実行結果
このプログラムを実行すると、たとえば5を入力した場合、中央揃えで星が1個、3個、5個、7個、9個と増えていく形で、きれいなピラミッド状のパターンがコンソールに表示されます。外側の for 文が行の制御を行い、最初の内側の for 文で左側の空白を出力して位置調整をし、続く while 文で奇数個の星を出力することで、左右対称なピラミッドが完成します。

-
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 の行列を生成し、それを対角方向に走査しながら別の行列へ値を格納する」というアプローチが思い浮かびます
-
C++で中空ピラミッドとダイヤモンドパターンを出力するプログラムの作り方
この記事では、C++を使って中空(ホロー)のピラミッドとダイヤモンドのパターンを生成する方法を解説します。塗りつぶし(ソリッド)のピラミッドパターンは比較的簡単に作成できますが、中空にするにはいくつかの工夫が必要です。ポイントは、ループと条件分岐を組み合わせて「星を出す位置」と「空白を入れる位置」を制御することです。 中空ピラミッドの出力 ピラミッドでは、1行目に星(*)を1つだけ出力し、最終行にはn個の星を連続して出力します。それ以外の行では、行頭と行末にちょうど2つの星を出力し、その間は空白で埋めます。これにより、輪郭だけの中空ピラミッドが完成します。 サンプルコード #include &