#include "oj.h"
#include <stdio.h>
int main()
{
int i=0,j=0;
int A[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
int B[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
int C[3][3] = {0};
matrix((int **)A, (int **)B, (int **)C, 3);
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",C[i][j]);
}
printf("\n");
}
return 0;
}
/*
功能: 矩阵相乘
输入: MatrixA,MatrixB
输出: MatrixC
返回: 0
*/
int matrix(int **MatrixA, int **MatrixB, int **MatrixC, int N)
{
int i, j, k;
int a, b;
if(MatrixA == NULL || MatrixB == NULL || MatrixC == NULL)
{
return -1;
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
*((int *)MatrixC + i*N +j) = 0; //转化成一维数组,MatrixC[i][j]
for(k=0;k<N;k++)
{
a = *((int *)MatrixA + i*N + k); //MatrixA[i][k],对于MatrixA,行i是确定的
b = *((int *)MatrixB + k*N + j); //MatrixB[k][j],对于MatrixB,列j是确定的
*((int *)MatrixC + i*N + j) += a*b;
}
}
}
return 0;
}
华为oj矩阵相乘2
最新推荐文章于 2021-03-19 23:17:09 发布