行列の乗算

[問題]行列 A ( n 行 m 列)と B ( m 行 l 列)のかけ算を行うプログラムを書け.n,m,および,l の値は入力データとして与えるものとし,任意の n,m,l に対応できるように書くこと.なお,行列のかけ算の定義は以下の通りとする.ただし,cij 等は,行列 C 等の i 行 j 列要素とする.

  C = AB, cij = Σkaikbkj  k = 1, ・・・, m

  問題を解くにあたり,行列とは double 型の 2 次元配列と考えてよい.たとえば,2 行 3 列の行列 A は,
double A[2][3]
のような配列であるとみなしてよい.ただし,この問題においては,任意の n,m,l に対応するため,new 演算子等を利用する必要がある.

(入力例) コメントの部分は除く
2 3 3   // n,m,l の値
1 2 3   // 行列 A の 1 行目
4 5 6   // 行列 A の 2 行目
1 0 0   // 行列 B の 1 行目
0 1 0   // 行列 B の 2 行目
0 0 1   // 行列 B の 3 行目
(出力例) コメントの部分は除く
1 2 3   // 行列 C の 1 行目
4 5 6   // 行列 C の 2 行目

 プログラムを書く際の注意事項

プログラムを入力して(貼り付けて)下さい (学籍番号(半角):



「C/C++とJava」の参考箇所(多次元配列)
「C/C++とJava」の参考箇所(メモリの動的確保)

C++自学・自習 演習問題目次 ホームページ