问题描述
给定两个N×M的矩阵,计算其和。其中:
N和M大于等于1且小于等于100,矩阵元素的绝对值不超过1000。
N和M大于等于1且小于等于100,矩阵元素的绝对值不超过1000。
输入格式
输入数据的第一行包含两个整数N、M,表示需要相加的两个矩阵的行数和列数。接下来2*N行每行包含M个数,其中前N行表示第一个矩阵,后N行表示第二个矩阵。
输出格式
你的程序需要输出一个N*M的矩阵,表示两个矩阵相加的结果。注意,输出中每行的最后不应有多余的空格,否则你的程序有可能被系统认为是Presentation Error
样例输入
2 2
1 2
3 4
5 6
7 8
样例输出
6 8
10 12
做过矩阵快速幂之后再做这一题。。开始就写了一个三层for循环,然后怎么改怎么不对。。
对不起我的线性代数老师,我混淆了矩阵的乘法和加法。
这道题直接两层for循环直接加就好了。
可耻的WA了两次。
1 #include <bits/stdc++.h> 2 using namespace 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 a[i][j] += b[i][j]; 17 } 18 } 19 for (int i = 1; i <= n; i++) { 20 for (int j = 1; j <= m; j++) { 21 if (j != m) { 22 cout << a[i][j] << " "; 23 } else { 24 cout << a[i][j] << endl; 25 } 26 } 27 } 28 return 0; 29 }