作业帮 > 综合 > 作业

矩阵乘法 3QDescription 已知矩阵A(mxn)和矩阵B(nxp),求C = A X B .Input 第一行

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/07 21:33:11
矩阵乘法 3Q
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" ); } }