Javaで行列をZ字形に出力するプログラムの書き方
行列(マトリックス)を「Z」の字形に沿って出力するには、1行目を左から右へ → 右端から左下への対角要素 → 最終行を左から右へ の順に要素を表示していきます。本記事では、その処理を実現するJavaプログラムをサンプルコードとともに解説します。
サンプルコード
import java.lang.*;
import java.io.*;
public class Demo{
public static void z_shape(int my_arr[][], int n){
int i = 0, j, k;
// 1行目を左から右へ出力
for (j = 0; j < n - 1; j++){
System.out.print(my_arr[i][j] + " ");
}
// 右上から左下への対角要素を出力
k = 1;
for (i = 0; i < n - 1; i++){
for (j = 0; j < n; j++){
if (j == n - k){
System.out.print(my_arr[i][j] + " ");
break;
}
}
k++;
}
// 最終行を左から右へ出力
i = n - 1;
for (j = 0; j < n; j++)
System.out.print(my_arr[i][j] + " ");
System.out.print("\n");
}
public static void main(String[] args){
int my_arr[][] = { { 34, 67, 89, 0},{ 0, 1, 0, 1 },{ 56, 99, 102, 21 },{78, 61, 40, 99}};
System.out.println("The matrix is ");
z_shape(my_arr, 4);
}
}
実行結果
The matrix is 34 67 89 0 0 99 78 61 40 99
プログラムの解説
Demo クラスには、行列をZ字形に走査して表示するメソッド z_shape が定義されています。このメソッドの処理は、次の3つのステップで構成されています。
1. 上段(1行目)の出力
最初のforループでは、配列のインデックス i = 0 の行、つまり1行目の要素を左から右へ順に出力します。これがZ字の「上の横線」に相当します。
2. 対角線部分の出力
次の二重ループでは、変数 k を使って各行の右端から1つずつ位置をずらしながら、右上から左下へ向かう対角線上の要素だけを出力します。これがZ字の「斜め線」に相当します。
3. 下段(最終行)の出力
最後に、インデックス i = n - 1 の行、つまり最終行の要素を左から右へすべて出力します。これがZ字の「下の横線」に相当します。
main メソッド内では4×4の二次元配列を定義し、それを引数として z_shape メソッドを呼び出しています。実行すると、Z字形に並べ替えられた行列の要素がコンソールに表示されます。
-
Javaで配列を出力する方法|初心者向けに3つの手法を解説
Javaで配列を出力する方法 配列とは、同じデータ型の要素を一定数だけ順序付けて格納できるJavaのデータ構造です。 Java開発者はデータを保存する際によく配列を使用します。例えば、スーパーマーケットで販売しているシリアルバーの仕入先5社の名前を配列に格納したり、地元の湖に生息する9種類の魚の名前を別の配列に格納したりできます。 Javaで配列を扱っていると、配列の中身をコンソールに出力したい場面に出くわすことがあります。その方法は複数あります。 この記事では、具体例を使いながら、Javaで配列を出力するための3つのアプローチを解説します。読み終える頃には、Javaでの配列出力をマス
-
C言語で正方行列をZ字形に表示するプログラム
プログラムの概要本記事では、C言語を使って正方行列の要素を「Z」の字形に沿って出力するプログラムを解説します。正方行列とは、行数と列数が等しい行列のことです。n行n列の行列は「n次の正方行列」と呼ばれ、2×2、3×3、4×4などの行列が該当します。Z字形出力のアルゴリズム行列の要素をZ字形で表示するには、次の3つの部分を順番に出力します。最上行(1行目):左端から右端までのすべての要素対角成分:右上から左下へ向かう斜めの要素(両端の角は除く)最下行(最終行):すべての要素これらを順につなげると、アルファベットの「Z」の形が完成します。3×3の行列の場合: a00 a01 a02