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

C#으로 행렬 덧셈 구현하는 방법 완벽 정리

행렬 덧셈(Matrix Addition)은 같은 크기를 가진 두 행렬의 대응하는 원소끼리 서로 더하는 연산입니다. C#에서는 2차원 배열을 활용하면 간단하게 구현할 수 있습니다.

행렬 덧셈의 기본 개념

행렬 덧셈을 수행하려면 먼저 두 개의 행렬이 필요합니다. 첫 번째 행렬과 두 번째 행렬의 행(row)과 열(column) 개수를 입력받아야 하며, 두 행렬의 크기가 동일해야만 덧셈이 가능하다는 점을 기억해야 합니다.

두 행렬에 원소를 모두 입력한 후, 새로운 배열을 선언하고 두 배열의 대응하는 원소들을 더한 값을 저장하면 됩니다. 핵심 연산 코드는 다음과 같습니다.

arr3[i, j] = arr1[i, j] + arr2[i, j];

C# 전체 예제 코드

아래는 사용자로부터 두 행렬의 크기와 원소를 입력받아 덧셈을 수행하고 결과를 출력하는 완전한 C# 프로그램입니다.

using System;
using System.Linq;

class Demo {

    static void Main() {

        int m, n, i, j;

        Console.Write("행렬의 행과 열 개수를 입력하세요: ");
        m = Convert.ToInt16(Console.ReadLine());
        n = Convert.ToInt16(Console.ReadLine());

        int[] arr1 = new int[10, 10];
        int[] arr2 = new int[10, 10];
        int[] arr3 = new int[10, 10];

        Console.Write("첫 번째 행렬의 원소 입력: ");
        for (i = 0; i < m; i++) {
            for (j = 0; j < n; j++) {
                arr1[i, j] = Convert.ToInt16(Console.ReadLine());
            }
        }

        Console.Write("두 번째 행렬의 원소 입력: ");
        for (i = 0; i < m; i++) {
            for (j = 0; j < n; j++) {
                arr2[i, j] = Convert.ToInt16(Console.ReadLine());
            }
        }

        Console.WriteLine("첫 번째 행렬");
        for (i = 0; i < m; i++) {
            for (j = 0; j < n; j++) {
                Console.Write(arr1[i, j] + "\t");
            }
            Console.WriteLine();
        }

        Console.WriteLine("두 번째 행렬");
        for (i = 0; i < m; i++) {
            for (j = 0; j < n; j++) {
                Console.Write(arr2[i, j] + "\t");
            }
            Console.WriteLine();
        }

        // 행렬 덧셈 수행
        for (i = 0; i < m; i++) {
            for (j = 0; j < n; j++) {
                arr3[i, j] = arr1[i, j] + arr2[i, j];
            }
        }

        Console.WriteLine("행렬 덧셈 결과");
        for (i = 0; i < m; i++) {
            for (j = 0; j < n; j++) {
                Console.Write(arr3[i, j] + "\t");
            }
            Console.WriteLine();
        }

        Console.ReadLine();
    }
}

실행 결과

위 프로그램을 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

행렬의 행과 열 개수를 입력하세요: 3 3
첫 번째 행렬의 원소 입력: 1 2 3 4 5 6 7 8 9
두 번째 행렬의 원소 입력: 1 2 3 4 5 6 7 8 9

첫 번째 행렬
1   2   3
4   5   6
7   8   9

두 번째 행렬
1   2   3
4   5   6
7   8   9

행렬 덧셈 결과
2   4   6
8   10  12
14  16  18

코드 핵심 포인트 정리

  • 2차원 배열 선언: C#에서는 int[] 형태로 2차원 배열을 선언하여 행렬을 표현합니다.
  • 중첩 반복문: 행(row)과 열(column)을 순회하기 위해 이중 for문을 사용합니다.
  • 원소별 덧셈: arr3[i, j] = arr1[i, j] + arr2[i, j]를 통해 대응하는 위치의 원소끼리 더합니다.
  • 크기 일치 필수: 두 행렬의 행과 열 개수가 같아야 덧셈 연산이 성립합니다.

이 예제는 콘솔 기반의 단순한 구현이지만, 실무에서는 List<T>나 LINQ를 활용하거나 Math.NET Numerics 같은 라이브러리를 사용하면 더욱 효율적으로 행렬 연산을 처리할 수 있습니다.