Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 프로그래밍으로 2차원 행렬의 모서리 요소 합계 구하기

배열이 주어졌을 때, 배열에 저장된 모든 모서리(corner) 요소의 합을 구하여 출력하는 것이 이번 포스팅의 목표입니다.

행(row)이 'r'개이고 열(column)이 'c'개인 행렬 mat[r][c]가 있다고 가정해 보겠습니다. 행과 열은 0부터 시작하므로, 이 행렬의 네 모서리 요소는 각각 다음과 같습니다.

  • mat[0][0] — 왼쪽 위
  • mat[0][c-1] — 오른쪽 위
  • mat[r-1][0] — 왼쪽 아래
  • mat[r-1][c-1] — 오른쪽 아래

따라서 우리가 해야 할 일은 이 네 요소를 더하는 것입니다. 즉, mat[0][0] + mat[0][c-1] + mat[r-1][0] + mat[r-1][c-1]을 계산한 뒤 그 결과를 화면에 출력하면 됩니다.

예시

입력: 행렬 요소 입력 :
    10 2 10
    2 3 4
    10 4 10
출력: 행렬의 합 : 40

위 예시에서 모서리 요소는 10, 10, 10, 10이며, 이들의 합인 40이 출력됩니다.

알고리즘

START
Step 1-> 행과 열을 매크로로 정의 (#define row 3, #define col 3)
Step 2 -> main()
    int sum=0 선언, 배열 a[row][col] 및 변수 int i, j, n 선언
    Loop For i=0 and i<3 and i++
        Loop For j=0 and j<3 and j++
            a[i][j] 값 입력 받기
        End
    End
    a[0][0] + a[0][row-1] + a[col-1][0] + a[col-1][row-1] 출력
STOP

C 코드 구현

#include<stdio.h>
#define row 3
#define col 3
int main(){
    int sum=0,a[row][col],i,j,n;
    printf("Enter the matrix elements : ");
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            scanf("%d",&a[i][j]);
        }
    }
    printf("sum of matrix is : %d",a[0][0] + a[0][row-1] +a[col-1][0] + a[col-1][row-1] );
    return 0;
}

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

Enter the matrix elements :
10 2 10
2 3 4
10 4 10
sum of matrix is : 40

이처럼 별도의 반복문으로 모서리를 탐색할 필요 없이, 인덱스 [0][0], [0][col-1], [row-1][0], [row-1][col-1]에 직접 접근하는 것만으로도 행렬의 네 모서리 요소의 합을 손쉽게 구할 수 있습니다.