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;//保持格式
}
}