题目描述
输入两个 n 行 m 列的矩阵 A 和 B,输出它们的和 A+B,矩阵加法的规则是两个矩阵中对应位置的值进行加和,具体参照样例。
输入格式
第一行包含两个整数 n 和 m,表示矩阵的行数和列数 (1≤n≤100,1≤m≤100)。
接下来 n 行,每行 m 个整数,表示矩阵 A 的元素。
接下来 n 行,每行 m 个整数,表示矩阵 B 的元素。
相邻两个整数之间用单个空格隔开,每个元素均在 1∼1000 之间。
输出格式
n 行,每行 m 个整数,表示矩阵加法的结果。相邻两个整数之间用单个空格隔开。
输入输出样例
输入 #1
3 3
1 2 3
1 2 3
1 2 3
1 2 3
4 5 6
7 8 9
输出 #1
2 4 6
5 7 9
8 10 12
题目说了,我们这题这题要用二维数组,所以,代码如下:
#include<bits/stdc++.h>
using namespace std;
int a[105][105],n,m,b[105][105],c[105][105];//定义三个二维数组,c数组用来计算a和b的和
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){//输入二维数组a
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++){//输入二维数组b
for(int j=1;j<=m;j++){
cin>>b[i][j];
}
}
for(int i=1;i<=n;i++){ //计算a,b之和
for(int j=1;j<=m;j++){
c[i][j]=a[i][j]+b[i][j];
}
}
for(int i=1;i<=n;i++){ //输出c
for(int j=1;j<=m;j++){
cout<<c[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
又及:
我感觉她太长了,所以,我压了个行:
#include<bits/stdc++.h>
using namespace std;
int a[105][105],n,m,b[105][105],c[105][105];
int main(){cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>b[i][j];}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){c[i][j]=a[i][j]+b[i][j];}}for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cout<<c[i][j]<<" ";}cout<<endl;}return 0;}