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

C 언어로 3×3 행렬 연산 프로그램 만들기: 행·열·대각선 합계 구하기

문제 정의

실행 중에 임의의 숫자 9개를 입력받은 뒤, C 프로그래밍 언어를 사용하여 이 숫자들을 행(row), 열(column), 대각선(diagonal) 방향으로 각각 더한 값을 출력하는 프로그램을 작성해야 합니다.

즉, 입력받은 9개의 숫자를 다음과 같이 3×3 행렬 형태로 배치하고 각 방향별 합계를 계산합니다.

x y z
p q r
a b c

알고리즘

1단계: 변수 9개를 선언한다
2단계: 실행 중에 숫자 9개를 입력받는다
3단계: 입력받은 숫자를 3×3 행렬 형태로 저장한다
        // x y z
        // p q r
        // a b c
4단계: 행(row) 연산 수행 - 각 행의 숫자를 모두 더하여 출력한다
        // (x+y+z), (p+q+r), (a+b+c)
5단계: 열(column) 연산 수행 - 각 열의 숫자를 모두 더하여 출력한다
        // (x+p+a), (y+q+b), (z+r+c)
6단계: 대각선(diagonal) 연산 수행 - 대각선 방향의 숫자를 더하여 출력한다
        // (x+q+c), (a+q+z)

프로그램 코드

#include<stdio.h>
int main(){
    int x,y,z,p,q,r,a,b,c;
    printf("enter any 9 numbers :\n");
    scanf("%d%d%d%d%d%d%d%d%d",&x,&y,&z,&p,&q,&r,&a,&b,&c); // 숫자 9개 읽기
    printf("%d %d %d\n",x,y,z);
    printf("%d %d %d\n",p,q,r);
    printf("%d %d %d\n",a,b,c);
    printf("Row total:%d %d %d\n",(x+y+z),(p+q+r),(a+b+c)); // 행(row) 연산
    printf("column total: %d %d %d\n",(x+p+a),(y+q+b),(z+r+c)); // 열(column) 연산
    printf("diagonal total :%d %d\n",(x+q+c),(a+q+z)); // 대각선(diagonal) 연산
    return 0;
}

코드 설명

  • 정수형 변수 9개(x, y, z, p, q, r, a, b, c)를 선언하여 행렬의 각 원소를 저장합니다.
  • scanf 함수로 사용자로부터 숫자 9개를 한 번에 입력받습니다.
  • 입력받은 값들을 3줄씩 나누어 행렬 형태로 화면에 출력합니다.
  • 행 합계는 같은 줄의 세 숫자를 더하고, 열 합계는 세로 방향의 숫자를 더하며, 대각선 합계는 좌상단→우하단(x+q+c)과 좌하단→우상단(a+q+z) 두 가지를 계산합니다.

실행 결과

enter any 9 numbers :
2 4 6 3 5 7 8 9 2
2 4 6
3 5 7
8 9 2
Row total:12 15 19
column total: 13 18 15
diagonal total :9 19

결과 검증

  • 행 합계: 첫 번째 행 2+4+6=12, 두 번째 행 3+5+7=15, 세 번째 행 8+9+2=19
  • 열 합계: 첫 번째 열 2+3+8=13, 두 번째 열 4+5+9=18, 세 번째 열 6+7+2=15
  • 대각선 합계: 주대각선 2+5+2=9, 반대 대각선 8+5+6=19

이처럼 배열 없이 개별 변수만으로도 간단히 구현할 수 있으며, 규모가 큰 행렬이라면 2차원 배열과 반복문을 활용하면 더 효율적인 코드를 작성할 수 있습니다.