숙제 4 (행렬 곱셈)
정수의 원소를 가지는 두 개의 행렬이 주어졌을 때, 두 행렬의 곱을 계산하는 프로그램을 작성하시오.
#include<iostream>
#include<cstdlib>
using namespace std;
int main(){
int r,s,t;
//arr1[r][s], arr2[s][t], out[r][t]
cin>>r>>s>>t;
int **arr1=new int*[r];
int **arr2=new int*[s];
int **out=new int*[r];
for(int i=0;i<r;i++){
arr1[i]=new int[s];
out[i]=new int [t];}
for(int i=0;i<s;i++) arr2[i]=new int[t];
for(int i=0;i<r;i++){
for(int j=0;j<s;j++) cin>>arr1[i][j];
}
for(int i=0;i<s;i++){
for(int j=0;j<t;j++) cin>>arr2[i][j];
}
for(int i=0;i<r;i++){
for(int j=0;j<t;j++){
for(int k=0;k<s;k++) out[i][j]+=(arr1[i][k]*arr2[k][j]);
}
}
int c=0;
for(int i=0;i<r;i++){
for(int j=0;j<t;j++) {
cout<<out[i][j]<<" ";}
if(i<r-1) cout<<endl;
}
for(int i=0;i<r;i++){
delete[] arr1[i];
delete[] out[i];}
for(int i=0;i<s;i++) delete[] arr2[i];
delete[] arr1;
delete[] arr2;
delete[] out;
cout<<endl;
return 0;
}
'코딩테스트' 카테고리의 다른 글
[C++] 제일 작은 수 제거하기 (0) | 2021.06.28 |
---|---|
[C++] Happy Number (0) | 2021.06.27 |
[C++] 행렬 덧셈 (0) | 2021.06.27 |
[C++] 집합 연산 (0) | 2021.06.27 |
[C++] 해밍 수 (Hamming Number) (0) | 2021.06.27 |