問題の説明
2つのN×M行列を指定して、合計を計算します。このうち、
NとMは1以上100以下であり、行列要素の絶対値は1000を超えません。
NとMは1以上100以下であり、行列要素の絶対値は1000を超えません。
入力フォーマット
入力データの最初の行には2つの整数NとMが含まれ、追加される2つの行列の行と列の数を示します。次の2 * N行はそれぞれM個の数値を含み、最初のN行は最初の行列を表し、最後のN行は2番目の行列を表します。
出力フォーマット
プログラムは、2つの行列の加算結果を表すN * M行列を出力する必要があります。出力の各行の終わりに余分なスペースがあってはならないことに注意してください。そうしないと、プログラムはシステムによってプレゼンテーションエラーと見なされる可能性があります。
入力例
2 2
1 2
3 4
5 6
7 8
出力例
6 8
10 12
マトリックスの高速パワーを実行した後で、この質問を実行します。。私は最初に3層のforループを書きましたが、それを変更する方法は間違っています。。
線形代数の先生には申し訳ありませんが、行列の乗算と加算を混同しています。
この質問は、直接2層のforループに直接追加されます。
恥ずべきWA。
1 #include <bits / stdc ++。h> 2 名前空間std を使用 。 3 int a [ 110 ] [ 110 ]; 4 int b [ 110 ] [ 110 ]; 5 int main(){ 6 int n、m; 7 cin >> n >> m; 8 for(int i = 1 ; i <= n; i ++ ){ 9 for(int j = 1 ; j <= m; j ++ ){ 10 cin >> a [i] [j]; 11 } 12 } 13 for(int i = 1 ; i <= n; i ++ ){ 14 for(int j = 1 ; j <= m; j ++ ){ 15 cin >> b [i] [j]; 16 } 17 } 18 for(int i = 1 ; i <= n; i ++ ){ 19 for(int j = 1 ; j <= m; j ++ ){ 20 a [i] [j] + = b [i] [j]; 21 } 22 } 23 for(int i = 1 ; i <= n; i ++ ){ 24 for(int j = 1 ; j <= m; j ++ ){ 25 if(j!= m){ 26 cout << a [ i] [j] << " " ; 27 } else { 28 cout << a [i] [j] << endl; 29 } 30 } 31 } 32 return 0 ; 33 }