입력 코드
#include <stdio.h>
main() {
int A[102][102], B[102][102];
int N, M, K;
scanf("%d %d", &N, &M);
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
scanf("%d", &A[i][j]);
}
}
scanf("%d %d", &M, &K);
for (int i = 0; i < M; i++) {
for (int j = 0; j < K; j++) {
scanf("%d", &B[i][j]);
}
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < K; j++) {
int sum = 0;
for (int p = 0; p < M; p++) {
sum += A[i][p] * B[p][j];
}
printf("%d ", sum);
}
printf("\n");
}
}
코드 설명
#수학 #2차원배열
#include <stdio.h>
main() {
int A[100][100], B[100][100];
int AB[10000][10000];
int N, M, K;
scanf("%d %d", &N, &M);
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
scanf("%d", &A[i][j]);
}
}
scanf("%d %d", &M, &K);
for (int i = 0; i < M; i++) {
for (int j = 0; j < K; j++) {
scanf("%d", &B[i][j]);
}
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
for (int k = 0; k < K; k++) {
AB[i][k] += A[i][j] * B[j][k];
}
}
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < K; j++) {
printf("%d ", AB[i][j]);
}
printf("\n");
}
}
처음에는 한 줄에 한 행을 한 번에 입력받아야 되는데 저렇게 작성해서 에러가 난 것 같았는데 마지막 AB행렬을 만드는 부분에서 에러가 난 것 같다.
#include <stdio.h>
main() {
int A[102][102], B[102][102];
int N, M, K;
scanf("%d %d", &N, &M);
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
scanf("%d", &A[i][j]);
}
}
scanf("%d %d", &M, &K);
for (int i = 0; i < M; i++) {
for (int j = 0; j < K; j++) {
scanf("%d", &B[i][j]);
}
}
for (int i = 0; i < N; i++) {
for (int j = 0; j < K; j++) {
int sum = 0;
for (int p = 0; p < M; p++) {
sum += A[i][p] * B[p][j];
}
printf("%d ", sum);
}
printf("\n");
}
}
↓ ↓ ↓ 참고한 사이트
wookje.dance/2018/08/28/boj-2740/
문제 출처
'C' 카테고리의 다른 글
#51. [백준_C언어] 1181 : 단어 정렬 (0) | 2021.01.27 |
---|---|
#50. [백준_C언어] 1018 : 체스판 다시 칠하기 (0) | 2021.01.26 |
#48. [백준_C언어] 5086 : 배수와 약수 (0) | 2021.01.25 |
#47. [백준_C언어] 2750 : 수 정렬하기 (0) | 2021.01.25 |
#46. [백준_C언어] 2231 : 분해합 (0) | 2021.01.23 |