2つの行列の要素を受け取り、これらの2つの行列の積を出力するプログラムを構築したいと思います。私はこれまで少し実験し、行列を作成し、 "readInts" - マニュアルを使用しました。まず、プログラムが実際にユーザーが入力した要素を受け取っていることを確認したいので、最初の行列を全体として印刷したいと思っています。これは、このコードに含まれています:2次元配列/行列の長さ
int rows = readInt("Number of rows: ");
int columns = readInt("Number of columns: ");
int [][] m = new int[rows][columns];
int [] elements = readInts("Please type in the elements: ");
for(int = 0; i < m.length; i++) {
print(elements[i], 5);
}
さて、私はまだ理解していなかったことは、私が「m.length」を解釈しなければならない方法です。少しのテストの後、私はそれが行の数を参照することを知ったので、例えば私が3行を定義し、1,2,3,4,5という数字をタイプすると、私は1,2,3プログラムは残りの部分をカットします。彼は実際には列の数を参照することになっていると思いますので、mを定義すると[行]と[列]を切り替える必要がありますが、常に行の数を最初に指定するので、直観に反します。また、遅かれ早かれ、それ以降に他の問題が発生するかどうかはわかりません。では、最初に[行]と[列]を切り替えることなくこれを行う別の方法がありますか?
'readInt'と' readInts'とは何ですか?これらは標準Javaメソッドではありません... – assylias
ああ、私はそれを知らなかった。 「readInt」は整数を読み込み、「readInts」は複数の整数を1つずつ読み込みます。これらの要素を印刷すると、最初から同じ行にあります。 – Julian
これ以上行く前に1つ知っておくべきです。そのような2次元配列を作成する場合、その配列は必ずしもmatriceと等価ではありません。特に、コンソールの行から配列などを塗りつぶしている場合は、2次元配列は単純に配列型の配列であり、注意しないと各配列の長さが異なることがあります。 – halil