我编写了用C ++语言将两个2D矩阵相乘的代码。我正在使用VS 2019,没有编译器错误。
当我执行程序时,它也为我提供了输出,但是我不确定为什么在运行时会出现Matrix损坏错误。
这是我写的一个简单程序。
// 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;
}
}