L1-048 矩阵A乘以B (15 分)

简介: L1-048 矩阵A乘以B (15 分)

给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有Ra行、Ca列,B有Rb行、Cb列,则只有Ca与Rb相等时,两个矩阵才能相乘。


输入格式:

输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中给出其行数R和列数C,随后R行,每行给出C个整数,以1个空格分隔,且行首尾没有多余的空格。输入保证两个矩阵的R和C都是正数,并且所有整数的绝对值不超过100。


输出格式:

若输入的两个矩阵的规模是匹配的,则按照输入的格式输出乘积矩阵AB,否则输出Error: Ca != Rb,其中Ca是A的列数,Rb是B的行数。


输入样例1:

1. 2 3
2. 1 2 3
3. 4 5 6
4. 3 4
5. 7 8 9 0
6. -1 -2 -3 -4
7. 5 6 7 8

结尾无空行


输出样例1:

1. 2 4
2. 20 22 24 16
3. 53 58 63 28

结尾无空行


输入样例2:

1. 3 2
2. 38 26
3. 43 -5
4. 0 17
5. 3 2
6. -11 57
7. 99 68
8. 81 72


输出样例2:

Error: 2 != 3

b0469997a20248b1bb5d7fabde9b9e09.png


样例解释 :a[0][0]=1*7+2*(-1)+3*5=20,a[0][1]=1*8+2*(-2)+3*6=22

                  a[0][2]=1*9+2*(-3)+3*7=24,a[0][3]=1*0+2*(-4)+3*8=16

                  a[1][0]=4*7+5*(-1)+6*5=53,a[1][1]=4*8+5*(-2)+6*6=63

                  a[1][2]=4*9+5*(-3)+6*7=63,a[1][3]=4*0+5*(-4)+6*8=28


#include<iostream>
using namespace std;
const int N=110;
int A[N][N],B[N][N];
int main()
{
    int a,b,c,d;
    cin>>a>>b;
    for(int i=0;i<a;i++)
        for(int j=0;j<b;j++)
            cin>>A[i][j];
    cin>>c>>d;
    for(int i=0;i<c;i++)
        for(int j=0;j<d;j++)
            cin>>B[i][j];
    if(b!=c) printf("Error: %d != %d",b,c);
    else
    {
        cout<<a<<' '<<d<<endl;
        for(int i=0;i<a;i++)//控制行
        {
            for(int j=0;j<d;j++)//控制列
            {
                int sum=0;
                for(int k=0;k<b;k++)
                {
                    sum+=A[i][k]*B[k][j];//矩阵的运算
                }
                if(j) cout<<' ';//控制空格
                cout<<sum;
            }
            cout<<endl;
        }
    }
    return 0;
}



目录
相关文章
|
4月前
|
算法 Java
求多个数的最大公约数及比例化简
求多个数的最大公约数及比例化简
36 1
|
6月前
L1-048 矩阵A乘以B
L1-048 矩阵A乘以B
49 0
|
6月前
求十个数的乘积
求十个数的乘积
33 0
7-93 矩阵A乘以B
7-93 矩阵A乘以B
124 0
计算整数n阶矩阵的主/副对角线元素之和并输出
计算整数n阶矩阵的主/副对角线元素之和并输出
计算整数n阶矩阵的主/副对角线元素之和并输出
L2-018 多项式A除以B (25 分)(数组模拟)
L2-018 多项式A除以B (25 分)(数组模拟)
175 0
L2-018 多项式A除以B (25 分)(数组模拟)
L1-036 A乘以B (5 分)
L1-036 A乘以B (5 分)
97 0
h0039. 平方数 (15 分)
h0039. 平方数 (15 分)
132 0
L1-037 A除以B (10 分)
L1-037 A除以B (10 分)
133 0