2차원 배열에 대해 두 행렬의 합을 출력해보는 프로그램
#include <stdio.h>
int main(void)
{
int mat_a[3][3]={{3, 8, 6}, {4, 1, 7}, {5, 2, 9}};
int mat_b[3][3]={{1, 4, 9}, {6, 5, 8}, {2, 3, 7}};
int sum[3][3]={0};
int i, j;
for(i=0; i<=2; i++)
{
for(j=0; j<=2; j++)
{
sum[i][j]=mat_a[i][j] + mat_b[i][j];
printf("sum[%d][%d]=%2d ", i, j, sum[i][j]);
}
printf("\n");
}
return 0;
}
// 실행 결과
이번 포스팅은 2차원 배열의 각 행과 열의 합계를 구하는 코드를 작성해보았습니다.
이중 반복문을 복습하는데 좋은 예제였네요.
// 2차원 배열의 각 행과 열 합계 구하기 #include<stdio.h> #define ROW_SIZE 3 // 행 사이즈 #define COL_SIZE 5 // 열 사이즈 int main(void) { int array[ROW_SIZE][COL_SIZE] = { {12, 56, 32, 16, 98}, {99, 56, 34, 41, 3}, {65, 3, 87, 78, 21} }; int row, col, sum; sum = 0; // 각 행의 합계 구하기 for (row = 0; row < ROW_SIZE; row++) { for (col = 0; col < COL_SIZE; col++) { sum += array[row][col]; } printf("%d행의 합계: %d\n", row, sum); sum = 0; } printf("\n"); // 각 열의 합계 구하기 for (col = 0; col < COL_SIZE; col++) { for (row = 0; row < ROW_SIZE; row++) { sum += array[row][col]; } printf("%d열의 합계: %d\n", col, sum); sum = 0; } return 0; }모든 코드는 직접 짜봐야 한다는 사실!!
그럼 오늘도 즐거운 코딩!
(C언어) 2차원배열 가로합 세로합 전체합 구하기
#배열다루기 #가로합 #세로합 #전체합 전체 배열을 돌면서 아래 그림과 같이 계속 더해줍니다. 배열을 선언할 때, 가로합, 세로합을 계산할 수 있도록 행과 열을 1만큼 더 크게 선언합니다. 합을 누적할 곳은 0으로 초기화를 해야 합니다.
#include <stdio.h> void sum_array(int arr[][5]) { int i, j; for (i = 0; i < 4; i++) for (j = 0; j < 4; j++) { arr[i][4] += arr[i][j]; // 가로 합 arr[4][j] += arr[i][j]; // 세로 합 arr[4][4] += arr[i][j]; // 전체 합 } } int main() { int i, j; // 가로합, 세로합을 계산할 수 있도록 행과 열을 1개씩 크게하고, 0으로 초기화합니다. int data[5][5] = { {35,28,67,73, 0}, {25,32,12,69, 0}, {97,56,14,23, 0}, {45,97,48,15, 0}, {0,0,0,0,0 } }; printf("+-----------------------+\n"); for (i = 0; i < 4; i++) { printf("|"); for (j = 0; j < 4; j++) printf(" %3d |", data[i][j]); printf("\n"); } printf("+-----------------------+\n"); sum_array(data); printf("가로, 세로, 전체 합.\n"); printf("+-----------------------------+\n"); for (i = 0; i < 5; i++) { printf("|"); for (j = 0; j < 5; j++) printf(" %3d |", data[i][j]); printf("\n"); } printf("+-----------------------------+\n"); }
#include <stdio.h> void sum_array(int arr[][5]) { int i, j; for (i = 0; i < 4; i++) for (j = 0; j < 4; j++) { arr[i][4] += arr[i][j]; // 가로 합 arr[4][j] += arr[i][j]; // 세로 합 arr[4][4] += arr[i][j]; // 전체 합 } } int main() { int i, j; // 가로합, 세로합을 계산할 수 있도록 행과 열을 1개씩 크게하고, 0으로 초기화합니다. int data[5][5] = { {35,28,67,73, 0}, {25,32,12,69, 0}, {97,56,14,23, 0}, {45,97,48,15, 0}, {0,0,0,0,0 } }; printf("+-----------------------+\n"); for (i = 0; i < 4; i++) { printf("|"); for (j = 0; j < 4; j++) printf(" %3d |", data[i][j]); printf("\n"); } printf("+-----------------------+\n"); sum_array(data); printf("가로, 세로, 전체 합.\n"); printf("+-----------------------------+\n"); for (i = 0; i < 5; i++) { printf("|"); for (j = 0; j < 5; j++) printf(" %3d |", data[i][j]); printf("\n"); } printf("+-----------------------------+\n"); } #배열 #2차원 #가로합 #세로합 #전체합 |