【C++小白成長擼】--矩陣乘法程序


矩陣乘法是大學矩陣課程中,相比矩陣加減法比較困難的部分。

矩陣乘法的原理:

矩陣乘法在代碼中實現

得到目標矩陣的一個元素,涉及兩個求和符號,一個求和符號一個for循環,兩個求和符號兩個for循環,再加上是二維數組,再加一個for循環

 

以下呈現出代碼

/*程序的版權和版本聲明部分:
**Copyright(c) 2017,電子科技大學本科生三年級學生
**All rights reserved.
**文件名:矩陣乘法
**程序作用:矩陣乘法
**作者:Amoshen
**完成日期:2016.10.26 更新日期:2017.11.29
**版本號:V2.0
*/
#include <iostream>

using namespace std;
#define MAX_SIZE 10

int main(void)
{
int i = 0, j = 0, m = 0, NumOfRowA, NumOfColA, NumOfColB, s = 0;//i為第一矩陣(A)的行變量,j為第一矩陣的列變量,同時為第二矩陣的列變量,m為第二矩陣(B)的列變量
int a[MAX_SIZE][MAX_SIZE], b[MAX_SIZE][MAX_SIZE], c[MAX_SIZE][MAX_SIZE];//MAX_SIZE為二維數組最大值。因為二維數組不能長度不能為變量,所以找個最大值(如果各位有什么其他解決這個問題,請指教)

cout << "輸入的行列數均不能大於10!!!!" << endl;

cout << "請輸入A矩陣相關信息:" << endl;
cout << "行 NumOfRowA = ";
cin >> NumOfRowA;
cout << "列 NumOfColA = ";
cin >> NumOfColA;

cout << "請輸入B矩陣相關信息:" << endl;
cout << "由於矩陣乘法,前矩陣的列數必須等於后矩陣的行數,故B矩陣只需輸入列數" << endl;
cout << "列 NumOfColB = ";
cin >> NumOfColB;
//用戶自定義矩陣元素
cout << "輸入方式:1 0 0 0 1 0 0 0 1" << endl << "代表:" << endl << "1 0 0\n0 1 0\n0 0 1\n";
cout << "請輸入A矩陣的元素" << endl;

for (i = 0; i < NumOfRowA; i++)
{
for (j = 0; j < NumOfColA; j++)
{
cin >> a[i][j];
}
}

cout << "請輸入B矩陣的元素" << endl;

for (j = 0; j < NumOfColA; j++)
{
for (m = 0; m < NumOfColB; m++)
{
cin >> b[j][m];
}
}
//矩陣乘法的實現
for (i = 0; i < NumOfRowA; i++)
{
for (m = 0; m < NumOfColB; m++)
{
for (j = 0; j < NumOfColA; j++)
{
s = s + a[i][j] * b[j][m];
}
c[i][m] = s;
s = 0;
}
}

cout << "矩陣乘法的結果:" << endl;
//輸出矩陣結果
for (i = 0; i < NumOfRowA; i++)
{
for (j = 0; j < NumOfColB; j++)
{
cout << c[i][j] << "\t";
}
cout << endl;
}

return 0;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM