C言語で数字をX字型(Xパターン)に表示するプログラムの作り方
本記事では、C言語を使ってコンソール上に数字をX字型(Xパターン)で表示するプログラムの作成方法を解説します。まず全体の流れを把握できるよう、アルゴリズムから順に見ていきましょう。
アルゴリズム
Xパターンで数字を表示するための手順は以下の通りです。
ステップ1:開始 ステップ2:変数を宣言する ステップ3:行数を読み込む ステップ4:forループの条件判定
- if(i==j || i+j==rows-1) の場合
- i+1 を出力する
- それ以外は " "(空白)を出力する
Xパターンを描くロジック
このパターンのポイントは、「行番号と列番号が等しい位置(i==j)」と「行番号と列番号の合計が行数-1になる位置(i+j==rows-1)」の2箇所にだけ数字を表示することです。この2つの条件が交差することで、文字通り「X」の形が描かれます。
実際のロジックは次のように記述します。
for(i=0;i<rows;i++){
for(j=0;j<rows;j++){
if(i==j || i+j==rows-1){
printf("%d",i+1);
}else{
printf(" ");
}
}
printf("\n");
}プログラム全文
以下が、数字をXパターンで表示するC言語プログラムの完全なソースコードです。
#include<stdio.h>
main(){
int i,j,rows;
printf("Enter number of rows:\n");
scanf("%d",&rows);
for(i=0;i<rows;i++){
for(j=0;j<rows;j++){
if(i==j || i+j==rows-1){
printf("%d",i+1);
}else{
printf(" ");
}
}
printf("\n");
}
}実行結果
上記のプログラムをコンパイルして実行すると、行数として「10」を入力した場合、次のような出力が得られます。
Enter number of rows:10
1 1
2 2
3 3
44
55
66
7 7
8 8
9 9
10 10解説のポイント
このプログラムでは、外側のループ(i)が行を、内側のループ(j)が列を制御しています。条件式 i==j は左上から右下への斜め線(\方向)、i+j==rows-1 は右上から左下への斜め線(/方向)に該当します。両方の条件を満たす中央の行では、同じ数字が隣接して表示される点にも注目してください。二重ループと条件分岐を組み合わせることで、さまざまな図形パターンを自由に出力できるようになります。
-
C言語で数値パターンを出力するプログラムの作り方
プログラムの概要 このプログラムは、ユーザーから行数を入力してもらい、それに応じた数値パターンを画面に出力するものです。 例として、入力が「5行」の場合、次のようなパターンが出力されます。 1 6 2 10 7 3 13 11 8 4 15 14 12 9 5 一見複雑に見えるこのパターンにも、きちんとした規則性があります。各行の先頭の数値は「1、6、10、13、15」と増加幅が5→4→3→2と1ずつ減っていき、行の中でも右に進むほど差が大きくなる仕組みです。 アルゴリズム ・各行の末尾側から順にパターンを出力する ・まず各行の最後の列を確定させる ・2行目以降は後ろから2番目の列から出力を
-
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 の行列を生成し、それを対角方向に走査しながら別の行列へ値を格納する」というアプローチが思い浮かびます