矩阵乘法
二维数组
二维数组的存放方式
- 二维数组的每一行实际上都是一个一维数组。
- a[0],a[1]都可以看作是一个一位数组的名字,可以直接当一维数组使用。
二维数组的初始化
int a[5][3] = {{80,75,92},{61,65}……};//第二行第三列为0
遍历二维数组
#define ROW 20
#define COL 30
int a[ROW][COL];
for(int i = 0;i < ROW;i++)//注意,数组是从0到ROW - 1。
for(int j = 0;j < COL;++j)
cout << endl;
}
二维数组解决矩阵乘法问题
#include<iostream>
using namespace std;
#define ROWS 8
#define COLS 8
int a[ROWS][COLS];
int b[ROWS][COLS];
int c[ROWS][COLS];
int main()
{
int m,n,p,q;
cin >> m >> n;
for(int i = 0; i < m;i++)
for(int j = 0;j < n;j++)
cin >> a[i][j];
cin >> p >> q;
for(int i = 0;i < p;++i)
for(int j = 0;j < q;++j)
cin >> b[i][j];
//将数组的值输入到 a b 数组中。
for(int i = 0;i < m;++i){
for(int j = 0;j < q;++j){
c[i][j] = 0;
for(int k = 0;k < n;++k)
c[i][j] += a[i][k] * b[k][j];
}
}
for(int i = 0;i < m;++i){
for(int j = 0;j < q;++j){
cout << c[i][j] << " ";
}
cout << endl;
}
return 0;
}