【C言語】アルファベットをスパイラルパターンで出力するプログラムの作り方
スパイラルパターンとは
アルファベットをスパイラル(螺旋)状のパターンで表現すると、以下のように出力されます。

このパターンの特徴は、2文字ずつペアで出力され、行ごとに「A B」「D C」「E F」「H G」…というように、昇順と降順が交互に入れ替わる点です。これにより、折り返しながら進むスパイラル(蛇行)のような模様が描かれます。
ロジックのポイント
スパイラルパターンを出力するためのロジックは、以下の手順で構成されています。
- まず、入力された行数(rows)が1以上13以下の範囲内にあるかをチェックします。アルファベットは26文字あるため、2文字ずつペアで出力する場合、最大行数は13行となります。
- forループでは変数iを1から始め、2ずつ増加させながら「rows × 2」まで繰り返します。
- カウンタ変数kが奇数の場合は「i+64 → i+65」の順(昇順)、偶数の場合は「i+65 → i+64」の順(降順)で文字を出力します。ASCIIコードにおいて65が'A'に対応するため、iに64または65を加算することで対応するアルファベットを取得できます。
- kをインクリメントしながら判定を切り替えることで、行ごとの出力方向が反転し、スパイラル状の見た目が生まれます。
- 範囲外の値が入力された場合は、エラーメッセージを表示して処理を終了します。
if(rows<=13 && rows>=1){
for(i=1;i<=rows*2;i+=2){
if(k%2==1){
printf("%c %c",i+64,i+65);
k++;
}else{
printf("%c %c",i+65,i+64);
k++;
}
printf("\n");
}
}
else{
printf("Please Enter from 1 to 13 only\n");
}サンプルプログラム
以下は、アルファベットをスパイラルパターンで出力するC言語の完全なソースコードです。
#include<stdio.h>
main(){
int i,rows,k=1;
printf("Enter number of Rows for Spiral Alpha Pattern from 1 to 13\n");
scanf("%d",&rows);
if(rows<=13 && rows>=1){
for(i=1;i<=rows*2;i+=2){
if(k%2==1){
printf("%c %c",i+64,i+65);
k++;
}else{
printf("%c %c",i+65,i+64);
k++;
}
printf("\n");
}
}else{
printf("Please Enter from 1 to 13 only\n");
}
}補足: 現在のC標準(C99以降)では、main関数の戻り値としてint型を明示し、最後にreturn文を記述することが推奨されています(int main(void))。また、scanf()の戻り値を確認することで、より堅牢なプログラムになります。
実行結果
上記のプログラムをコンパイルして実行すると、次のような結果が出力されます。
Enter number of Rows for Spiral Alpha Pattern from 1 to 13 10 A B D C E F H G I J L K M N P O Q R T S
10行を指定した例では、AからTまでの20文字が2文字ずつのペアとなって出力され、行ごとに昇順・降順が反転している様子が確認できます。
このように、単純なループと条件分岐を組み合わせるだけで、視覚的に面白いパターン描画プログラムを作成できます。ぜひ行数を変えて、さまざまなパターンの変化を試してみてください。
-
C言語で正方行列をZ字形に表示するプログラム
プログラムの概要本記事では、C言語を使って正方行列の要素を「Z」の字形に沿って出力するプログラムを解説します。正方行列とは、行数と列数が等しい行列のことです。n行n列の行列は「n次の正方行列」と呼ばれ、2×2、3×3、4×4などの行列が該当します。Z字形出力のアルゴリズム行列の要素をZ字形で表示するには、次の3つの部分を順番に出力します。最上行(1行目):左端から右端までのすべての要素対角成分:右上から左下へ向かう斜めの要素(両端の角は除く)最下行(最終行):すべての要素これらを順につなげると、アルファベットの「Z」の形が完成します。3×3の行列の場合: a00 a01 a02
-
【C言語】六角形パターンを出力するプログラムの作成方法
本記事では、整数「n」が与えられたとき、その値をもとにアスタリスク(*)で構成された六角形パターンを生成し、画面に出力するC言語プログラムを解説します。ループと条件分岐を組み合わせることで、きれいな六角形の図形をテキストベースで描くことができます。 実行例 入力:n = 5 の場合の出力は以下のようになります。 入力:n = 4 の場合の出力は以下のようになります。 プログラムの基本的なアプローチ このプログラムでは、六角形パターンを以下の手順で作成しています。 ユーザーから整数「n」を入力として受け取ります。 パターン全体を「上部」「中央部」「下部」の3つの部分に分割して考えます。