實現矩陣的乘法需要2個步驟:
1輸入矩陣資料:首先定義三個矩陣int a[100][100], int b[100][100],int c[100][100](注意陣列後的值必須為常數。)
a,b實現兩個矩陣相乘,c用來儲存最終結果。雖然我們的矩陣可能沒有100*100個資料,但是也沒有太大影響,我們
可以讓使用者決定矩陣的行與列(行<=100,列<=100),並用for輸入資料
2矩陣乘法的實現: 矩陣的乘法法則就不多說了,行乘以列對應相加,用3個for實現2個矩陣所有資料的遍歷
用c[i][k] += ((a[i][j])*(b[j][k]))實現矩陣的乘法操作。
具體**如下:
#include "pch.h"
#include using namespace std;
int a[100][100];
int b[100][100];
int c[100][100];
int main()
} cout << "請輸入第二個矩陣的資料:" << endl;
for (int i = 0; i < n; i++) }
for (int j = 0; j < n; j++)
}} cout << "結果為:" << endl;
for (int i = 0; i < m; i++)
cout << endl;
} return 0;
}
注意:資料超出會cin會產生錯誤(結果不正確)。歸其原因:輸入資料是如果輸入乙個再按一下空格函式並沒用執行
如果輸入的數剛好或較少,按enter不存在問題。因為數是在按enter輸入進入的,如果超標則會存在未知的問題。
換句話說,cin的正確輸入方法為輸入一下,按一下enter,這樣就不存在多輸的問題了。
矩陣乘法(Strassen演算法 C 實現)
問題 請程式設計實現矩陣乘法,並考慮當矩陣規模較大時的優化方法。思路一 暴力解法 直接根據數學中矩陣乘法的計算公式 計算目標矩陣中各個元素的值。思路一 暴力解法 矩陣乘法,3個for迴圈搞定 void mul int matrixa,int matrixb,int matrixc 思路二 stras...
C語言實現矩陣乘法
產生a 5行4列 b 4行3列 兩個隨機矩陣,每個元素是 10,10 之間的隨機整數並列印出來,列印出它們的乘積c矩陣。要求矩陣用 分隔開,以a,b,c的順序列印,各行對齊。include stdafx.h include include include include pragma warning...
c 矩陣作為函式輸入變數 C 實現矩陣乘法
最近學習c 做了乙個矩陣乘法的練習。先說一下功能,輸入兩個矩陣a,b,大小自己定,換行用 表示 matlab的習慣 然後輸出a b的矩陣。首先,由於輸入的矩陣維數是隨機的,因此,我們要設計程式,手動把行和列算出來,這樣方便後續乘法運算。並且把輸入的數字提取出來,放入乙個float型陣列中,這樣我們就...