3095. 矩阵乘法

单点时限: 2.0 sec

内存限制: 256 MB

定义函数 multiply 计算两个 阶方阵 的乘积 C。,元素类型是 int

//********** Specification of multiply **********
void multiply(int (*A)[N], int (*B)[N], int (*C)[N],int n);
/* PreCondition:
A, B, and C are addresses of three matrices
and n (n<=N) is a positive integer
PostCondition:
C is the product of A and B.
*/

只需按要求写出函数定义,并使用给定的测试程序测试你所定义函数的正确性。

不要改动测试程序。

测试正确后,将测试程序和函数定义一起提交。

/***************************************************************/
/*                                                             */
/*  DON'T MODIFY main function ANYWAY!                         */
/*                                                             */
/***************************************************************/
#include <stdio.h>
#define N 10

//********** Specification of multiply **********
void multiply(int (*A)[N], int (*B)[N], int (*C)[N],int n)
/* PreCondition:
A, B, and C are addresses of three matrices
and n (n<=N) is a positive integer
PostCondition:
C is the product of A and B.
*/
{
    //TODO: your function definition
}
/***************************************************************/

int main()
{
    int A[N][N], B[N][N], C[N][N], n, i, j;
    scanf("%d",&n);
    for (i=0;i<n;i++)
        for (j=0;j<n;j++)
            scanf("%d",&A[i][j]);
    for (i=0;i<n;i++)
        for (j=0;j<n;j++)
            scanf("%d",&B[i][j]);
    /********** multiply is called here **************/
    multiply(A,B,C,n);
    /**************************************************/
    for (i=0;i<n;i++)
        for (j=0;j<n;j++)
            printf("%d%c",C[i][j],j<n-1?' ':'\n');
    return 0;
}

输入格式

第 1 行输入一个整数 (),接下来 行,每行输入 个由一个空格分隔的 int,整数的绝对值不超过 。前 行为方阵 ,后 行为方阵

输出格式

输出 行,分别按序对应方阵 的每一行,每行 个数 (相互之间由一个空格分隔,每行最后一个数后没有空格)。

样例

Input
3
1 2 3
4 5 6
7 8 9
-1 8 9
10 -20 -30
34 56 -25
Output
121 136 -126
250 268 -264
379 400 -402

提示

计算公式为:

413 人解决,442 人已尝试。

499 份提交通过,共有 951 份提交。

1.1 EMB 奖励。

创建: 4 年,2 月前.

修改: 2 年,1 月前.

最后提交: 3 天,22 小时前.

来源: N/A

题目标签