用c语言实现两个n×n矩阵相乘
/*
时间:2023年6月6日12:12:28
功能:两个n×n矩阵相乘
试数:(1)i=0<n; j=0<n; c[0][0]=0 ; k=0<n c[0][0]=0+a[0][0]*b[0][0]
k=1<n c[0][0]=a[0][0]*b[0][0]+a[0][1]*b[1][0]
k=2<n c[0][0]=a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]
...
k=n-1 c[0][0]=a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]+..+a[0][n]*b[n][0]
(2)i=0<n;j=1<n; c[0][1]=0 .....
*/
# include <stdio.h>
# define n 3
int main(void)
{
int i,j,k;
int a[n][n] = {1,2,3,4,5,6,7,8,9};
int b[n][n] = {1,2,3,4,5,6,7,8,9};
int c[n][n];
// 两个n×n矩阵相乘
for (i = 0; i<n; i++)
{
for (j=0; j<n; j++)
{
c[i][j] = 0;
for (k=0; k<n; k++)
{
c[i][j] = c[i][j]+a[i][k]*b[k][j];
}
}
}
//输出
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
printf("%-5d ",c[i][j]);
printf("\n");
}
return 0;
}
/* Dev-C++运行结果
30 36 42
66 81 96
102 126 150
*/
时间复杂度:O(n^3)