首页 > 其他分享 >OpenJudge 1.8.9 矩阵乘法

OpenJudge 1.8.9 矩阵乘法

时间:2022-12-10 09:55:54浏览次数:43  
标签:输出 int 1.8 矩阵 100 OpenJudge 输入 乘法

09:矩阵乘法

总时间限制: 1000ms 内存限制: 65536kB

描述

计算两个矩阵的乘法。nm阶的矩阵A乘以mk阶的矩阵B得到的矩阵C 是nk阶的,且C[i][j] = A[i][0]B[0][j] + A[i][1]B[1][j] + …… +A[i][m-1]B[m-1]j

输入

第一行为n, m, k,表示A矩阵是n行m列,B矩阵是m行k列,n, m, k均小于100
然后先后输入A和B两个矩阵,A矩阵n行m列,B矩阵m行k列,矩阵中每个元素的绝对值不会大于1000。

输出

输出矩阵C,一共n行,每行k个整数,整数之间以一个空格分开。

样例输入

3 2 3
1 1
1 1
1 1
1 1 1
1 1 1

样例输出

2 2 2
2 2 2
2 2 2

题意

输入两个矩阵(长宽不一定相等),但输出 N*K 的矩阵

思路

使用三个嵌套For循环分别用于:输入矩阵1,输入矩阵2,计算并输出。

代码实现

点击查看代码
#include <bits/stdc++.h>
using namespace std;
int main ()
{
    int N,M,K;//声明变量N,M,K
    cin>>N>>M>>K;//输入变量N,M,K
    int PIC1[100][100];
    int PIC2[100][100];
    for(int i=0;i<N;i++){
        for(int j=0;j<M;j++){
            cin>>PIC1[i][j];//使用For循环输入矩阵1
        }
    }
    for(int i=0;i<M;i++){
        for(int j=0;j<K;j++){
            cin>>PIC2[i][j];//使用For循环输入矩阵2
        }
    }
    int OUT=0;
    for(int i=0;i<N;i++){
        for(int j=0;j<K;j++){
            OUT=0;//将OUT归零
            for(int c=0;c<M;c++){
                OUT+=PIC1[i][c]*PIC2[c][j];//计算OUT的值
            }
            cout<<OUT<<" ";//输出OUT
        }
        cout<<endl;//保持格式
    }
}

标签:输出,int,1.8,矩阵,100,OpenJudge,输入,乘法
From: https://www.cnblogs.com/HANDMICRO/p/16970811.html

相关文章