//////
Search
📒

이차원 행렬의 합 구하기

1. 소스코드

#include <stdio.h> #define SIZE 3 // 가로 합 계산 함수 void sum_horizontal(int matrix[SIZE][SIZE], int result[]) { for(int i=0; i<SIZE; i++) { int sum = 0; for(int j=0; j<SIZE; j++) { sum += matrix[i][j]; } result[i] = sum; } } // 세로 합 계산 함수 void sum_vertical(int matrix[SIZE][SIZE], int result[]) { for (int i = 0; i < SIZE; i++) { int sum = 0; for (int j = 0; j < SIZE; j++) { sum += matrix[i][j]; } result[i] = sum; } } // 2차원 배열 전체 합 연산 함수 int sum_all(int matrix[SIZE][SIZE]) { int sum = 0; for(int i=0; i<SIZE; i++) { for(int j=0; j<SIZE; j++) { sum += matrix[i][j]; } } return sum; } int main(void) { int matrix[SIZE][SIZE] = {1,2,3,4,5,6,7,8,9}; int horizontal_sum[SIZE]; int vertical_sum[SIZE]; int total = 0; // 가로,세로 합 계산 수행 sum_horizontal(matrix, horizontal_sum); sum_vertical(matrix, vertical_sum); // 전체 합 계산 수행 total = sum_all(matrix); // 가로 합 출력 printf("가로 합: "); for (int i = 0; i < 3; i++) { printf("%d행의 합: %d", i+1, horizontal_sum[i]); } printf("\n"); // 세로 합 출력 printf("세로 합: "); for (int j = 0; j < 3; j++) { printf("%d열의 합: %d", j+1, vertical_sum[j]); } printf("\n"); // 전체 합 출력 printf("전체 합: %d\n", total); return 0; }
C
복사

2. 실행화면

3. 느낀점

오랜만에 C언어를 만지다보니, 한동안 안 했던 탓에 생각보다 생각이 안 나는 문법들이 좀 있었고, 하지만 사소한 문법에 대해서는 구글링 조금만 하면 해결이 되다보니, 잠깐잠깐 막히는 문제를 제외하고는 괜찮았던 것 같습니다