矩阵是线性代数学科里常用的概念。矩阵C=A+B的加法规则,A矩阵对应的行列位置和B矩阵对应的行列位置数字相加,得到C矩阵对应行列位置的数字。通过编写程序,实现简单的矩阵加法运算。
要求:要用二重指针动态分配内存的方式控制矩阵,实现分配和释放。
输入:第一行输入矩阵A和B的行数, 第二行输入矩阵A和B的列数, 第三行输入矩阵A, 第四行输入矩阵B
输出:按照行列输出一个矩阵C,同行数据之间有空格,行尾无空格
样例输入
2
3
1 2 3 4 5 6
1 3 5 7 9 11
样例输出
2 5 8
11 14 17
#include <iostream>
using namespace std;
int main() {
int** A, ** B, ** C;
int row, col;
cin >> row >> col;
// 动态分配内存
A = new int* [row];
B = new int* [row];
C = new int* [row];
for (int i = 0; i < row; i++) {
A[i] = new int[col];
B[i] = new int[col];
C[i] = new int[col];
}
// 输入A矩阵
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cin >> A[i][j];
}
}
// 输入B矩阵
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cin >> B[i][j];
}
}
// 计算C矩阵
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
C[i][j] = A[i][j] + B[i][j];
}
}
// 输出C矩阵
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
cout << C[i][j];
if (j != col - 1) {
cout << " ";
}
}
cout << endl;
}
// 释放内存
for (int i = 0; i < row; i++) {
delete[] A[i];
delete[] B[i];
delete[] C[i];
}
delete[] A;
delete[] B;
delete[] C;
return 0;
}