永发信息网

矩阵乘法 C语言设计

答案:1  悬赏:50  手机版
解决时间 2021-04-28 02:51
  • 提问者网友:不爱我么
  • 2021-04-27 13:35

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
最佳答案
  • 五星知识达人网友:人间朝暮
  • 2021-04-27 13:46

题目是否有问题. 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" );
}
}

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯