C언어 2차원 배열 덧셈 - ceon-eo 2chawon baeyeol deos-sem

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;
}

// 실행 결과

C언어 2차원 배열 덧셈 - ceon-eo 2chawon baeyeol deos-sem

이번 포스팅은 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차원 배열 덧셈 - ceon-eo 2chawon baeyeol deos-sem
▲ 위 코드 실행시 화면 출력 값

모든 코드는 직접 짜봐야 한다는 사실!!

그럼 오늘도 거운 딩!

(C언어) 2차원배열 가로합 세로합 전체합 구하기

C언어 2차원 배열 덧셈 - ceon-eo 2chawon baeyeol deos-sem
코딩ABC2020. 10. 5. 15:34

#배열다루기 #가로합 #세로합 #전체합

전체 배열을 돌면서 아래 그림과 같이 계속 더해줍니다.

배열을 선언할 때, 가로합, 세로합을 계산할 수 있도록 행과 열을 1만큼 더 크게 선언합니다.

합을 누적할 곳은 0으로 초기화를 해야 합니다.

C언어 2차원 배열 덧셈 - ceon-eo 2chawon baeyeol deos-sem

#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"); }

C언어 2차원 배열 덧셈 - ceon-eo 2chawon baeyeol deos-sem

#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차원 #가로합 #세로합 #전체합