矩陣的加減法:就是對應位置相加減即可
對於滿足以下條件的矩陣A,B:
我們有:
加法,
減法,
矩陣的乘法:
對於滿足以下條件的矩陣A,B,C:
我們有:
其中:
要注意的是矩陣羣沒有乘法交換律,也就是說:
下面的代碼是輸入兩個矩陣,輸出他們的乘
#include <stdio.h>
int main(void)
{
int mTemp, rTemp, nTemp;
scanf("%d %d %d", &mTemp, &rTemp, &nTemp);
const int m = mTemp, r = rTemp, n = nTemp; //注意數組的聲明要用常數
double A[m][r], B[r][n], C[m][n];
//輸入A,B兩個矩陣
for (int i = 0; i <= m - 1; i++) {
for (int j = 0; j <= r - 1; j++) {
scanf("%lf", &A[i][j]);
}
}
for (int i = 0; i <= r - 1; i++) {
for (int j = 0; j <= n - 1; j++) {
scanf("%lf", &B[i][j]);
}
}
//將矩陣(二維數組)C 的所有元素全部初始化爲零
for (int i = 0; i <= m - 1; i++) {
for (int j = 0; j <= n - 1; j++) {
C[i][j] = 0;
}
}
//矩陣乘法
for (int i = 0; i <= m - 1; i++) {
for (int j = 0; j <= n - 1; j++) {
for (int k = 0; k <= r - 1; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
//輸出結果
for (int i = 0; i <= m - 1; i++) {
for (int j = 0; j <= n - 1; j++) {
printf("%10.5f ", C[i][j]);
}
printf("\n");
}
return 0;
}
當我們要進行計算的時候,首先輸入m, r, n,再輸入矩陣A, 再輸入矩陣B
比如,我想要計算一下這兩組矩陣
我就要這樣輸入
輸出結果:
發現精度都沒用上,居然是整數,那就再算一組,來個複雜點的
輸入:
輸出: