两个3行3列矩阵相加用c++怎么写

 我来答
ok石破天惊
2016-11-22
知道答主
回答量:7
采纳率:0%
帮助的人:7292
展开全部

#include <iostream>
#include <cstdlib>
using namespace std;
void addMatrix(int **a, int **b, int **c, int cRow, int cCol);
void printMatrix(int **array, int arrayRow, int arrayCol);
int main() {
    int aRow, aCol;
    cout << "请输入矩阵a的行数和列数: ";
    cin >> aRow >> aCol;
    int **a = new(nothrow) int *[aRow];
    for(int i = 0; i < aRow; ++i)
        a[i] = new(nothrow) int[aCol];
    int **b = new(nothrow) int *[aRow];
    for(int i = 0; i < aRow; ++i)
        b[i] = new(nothrow) int[aCol];
    int **c = new(nothrow) int *[aRow];
    for(int i = 0; i < aRow; ++i)
        c[i] = new(nothrow) int[aCol];
    cout << "请输入矩阵a[" << aRow << "][" << aCol << "]的值" << endl;
    for(int i = 0; i < aRow; ++i)
        for(int j = 0; j < aCol; ++j)
            cin >> a[i][j];
    cout << "请输入矩阵b[" << aRow << "][" << aCol << "]的值" << endl;
    for(int i = 0; i < aRow; ++i)
        for(int j = 0; j < aCol; ++j)
            cin >> b[i][j];
    addMatrix(a, b, c, aRow, aCol);
    cout << "矩阵a和矩阵b相加" << endl;
    printMatrix(c, aRow, aCol);
    return 0;
}
void addMatrix(int **a, int **b, int **c, int cRow, int cCol) {
    for(int i = 0; i < cRow; ++i) {
        for(int j = 0; j < cCol; ++j) {
            c[i][j] = a[i][j] + b[i][j];
        }
    }
}
void printMatrix(int **array, int arrayRow, int arrayCol) {
    for(int i = 0; i < arrayRow; ++i) {
        for(int j = 0; j < arrayCol; ++j) {
            cout << array[i][j] << " ";
        }
        cout << endl;
    }
}

//任何两个矩阵相加都可以适用

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式