Description
已知矩阵A(mxn)和矩阵B(nxp),求C = A X B 。
Input
第一行三个整数为m、n、p(m、n、p均小于10),从第二行开始为m行n列A矩阵,然后为n行p列的B矩阵。所有数据之间均由一个空格分隔。
Output
输出m行p列的C矩阵,所有数据之间均由一个空格分隔。
Sample Input
2 3 4
1 0 3
3 4 0
1 0 2 1
2 3 4 5
2 1 1 5
Sample Output
16 13 20 37
7 3 5 16
11 12 22 23
题目是否有问题. m * n的矩阵和n * p的矩阵.相乘的结果应该是一个m * p的矩阵.
因此,以上面的例子,得到的应该是一个2 * 4的矩阵.
下面是代码:
#include< stdio.h >
main()
{
int m, n, p, i, j, k;
int A[ 10 ][ 10 ], B[ 10 ][ 10 ], C[ 10 ][ 10 ];
scanf("%d%d%d", &m, &n, &p);
for( i = 0; i < m; i++ )
{
for( j = 0; j < n; j++ )
{
scanf("%d", &A[ i ][ j ]);
}
}
for( i = 0; i < n; i++ )
{
for( j = 0; j < p; j++ )
{
scanf("%d", &B[ i ][ j ]);
}
}
for( i = 0; i < m; i++ )
for( j = 0; j < p; j++ )
{
C[ i ][ j ] = 0;
for( k = 0; k < n; k++ )
C[ i ][ j ] += A[ i ][ k ] * B[ k ][ j ];
}
for( i = 0; i < m; i++ )
{
for( j = 0; j < p; j++ )
printf( "%d ", C[ i ][ j ] );
printf( "\n" );
}
}