用C加加编程实现矩阵的加法,在矩阵的行和列都由用户输入,主函数中完成两个矩阵的初始化,调用矩阵加法函数,将计算结果,存储在第一个和矩阵中。然后在主函数中,输出结果。
时间: 2024-03-01 10:51:48 浏览: 83
好的,以下是实现矩阵加法的C++代码:
```c++
#include <iostream>
using namespace std;
void matrixAddition(int** matrix1, int** matrix2, int** result, int rows, int cols) {
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
result[i][j] = matrix1[i][j] + matrix2[i][j];
}
}
}
int main() {
int rows, cols;
cout << "Enter number of rows: ";
cin >> rows;
cout << "Enter number of columns: ";
cin >> cols;
// Allocate memory for matrices
int** matrix1 = new int*[rows];
int** matrix2 = new int*[rows];
int** result = new int*[rows];
for(int i=0; i<rows; i++) {
matrix1[i] = new int[cols];
matrix2[i] = new int[cols];
result[i] = new int[cols];
}
// Initialize matrices
cout << "Enter matrix1 values: " << endl;
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
cin >> matrix1[i][j];
}
}
cout << endl << "Enter matrix2 values: " << endl;
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
cin >> matrix2[i][j];
}
}
// Call matrixAddition function
matrixAddition(matrix1, matrix2, result, rows, cols);
// Print result matrix
cout << endl << "Result matrix: " << endl;
for(int i=0; i<rows; i++) {
for(int j=0; j<cols; j++) {
cout << result[i][j] << " ";
}
cout << endl;
}
// Deallocate memory
for(int i=0; i<rows; i++) {
delete[] matrix1[i];
delete[] matrix2[i];
delete[] result[i];
}
delete[] matrix1;
delete[] matrix2;
delete[] result;
return 0;
}
```
在上面的代码中,我们首先定义了一个名为`matrixAddition`的函数,该函数接受两个矩阵和一个结果矩阵,并将计算结果存储在结果矩阵中。然后我们在主函数中获取了用户输入的行和列数,并使用`new`运算符分配了三个矩阵的内存。接下来,我们初始化了两个矩阵,然后调用了`matrixAddition`函数。最后,我们输出了结果矩阵,并释放了所有矩阵的内存。
注意:在实际应用中,应该使用动态内存分配来分配矩阵的内存,以避免内存浪费和溢出的问题。
阅读全文