即使我获得2D矩阵乘法的正确输出,也会发生调试错误

时间:2019-10-04 05:12:01

标签: c++

我编写了用C ++语言将两个2D矩阵相乘的代码。我正在使用VS 2019,没有编译器错误。

当我执行程序时,它也为我提供了输出,但是我不确定为什么在运行时会出现Matrix损坏错误。

enter image description here

这是我写的一个简单程序。

// CPP_ConsoleApp1.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

#include "pch.h"
#include <iostream>

using namespace std;

int main()
{
    int sum = 0;
    cout << "Matrix 1" << endl;
    int Matrix1[3][3] = { {1,2,3}, {2,3,1}, {2,1,0} };

    for (int rows = 0; rows < 3; rows++)
    {
        for (int columns = 0; columns < 3; columns++)
        {
            cout << Matrix1[rows][columns] << "\t";
        }
        cout << endl;
    }

    cout << endl;
    cout << "Matrix 2" << endl;
    int Matrix2[3][2] = { {2,1},{2,2},{1,2} };

    for (int rows = 0; rows < 3; rows++)
    {
        for (int columns = 0; columns < 2; columns++)
        {
            cout << Matrix2[rows][columns] << "\t";
        }
        cout << endl;
    }

    int Matrix3[3][2];

    for (int rows = 0; rows < 3; rows++)
    {
        for (int column = 0; column < 3; column++)
        {
            for (int k = 0; k < 3; k++)
            {
                sum = sum + Matrix1[rows][k] * Matrix2[k][column];
            }
            Matrix3[rows][column] = sum;
            sum = 0;
        }
    }

    cout << endl;
    cout << "Matrix 1 * Matrix 2" << endl;

    for (int rows = 0; rows < 3; rows++)
    {
        for (int column = 0; column < 2; column++)
        {
            cout << Matrix3[rows][column] << "\t";
        }
        cout << endl;
    }
}

0 个答案:

没有答案
相关问题