实现两个N*N矩阵的乘法,矩阵由一维数组表示。
[cpp] view plaincopy
- void MatrixMultiplication(int * pArry1, int *pArry2, int * pDestArry, int len)
- {
- int row ;
- int col;
- row= col = (int)sqrt((double)len);
- if (row * col != len) //矩阵不为方阵则提示矩阵无效
- {
- cout << "Matrix Invalidate!" << endl;
- }
- int i, j, k;
- int sum;
- for (i = 0; i < row; i++)
- {
- for (j = 0; j < col; j++)
- {
- sum = 0;
- for (k = 0; k < row; k++)
- {
- sum += pArry1[row * i + k] * pArry2[row * k + j];
- //某行、某列所有对应元素相乘求和即为新矩阵某行某列的元素
- }
- pDestArry[row * i + j] = sum; //矩阵相乘所得新矩阵
- }
- }
- }