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

C#으로 짝수와 홀수를 서로 다른 배열로 분리하는 방법

C#에서 배열에 담긴 정수들을 짝수와 홀수로 구분하여 각각 별도의 배열에 저장하는 방법을 알아보겠습니다. 핵심은 나머지 연산자(%)를 활용하는 것입니다.

기본 원리

먼저 결과를 저장할 두 개의 배열을 준비합니다. 하나는 짝수용, 다른 하나는 홀수용입니다.

int[] arr2 = new int[5]; // 짝수 저장용 배열
int[] arr3 = new int[5]; // 홀수 저장용 배열

배열의 요소를 2로 나누었을 때 나머지가 0이면 그 수는 짝수입니다. 이 조건을 만족하는 요소를 별도의 배열에 추가하면 됩니다. 아래 코드처럼 반복문을 통해 배열 전체를 순회하며 검사합니다.

if (arr1[i] % 2 == 0) {
    arr2[j] = arr1[i]; // 짝수를 arr2에 저장
}

else 조건에 해당하는 경우는 홀수입니다. 홀수는 또 다른 배열에 따로 저장한 뒤, 마지막에 각각 출력하면 됩니다.

전체 예제 코드

아래는 위 원리를 적용한 완전한 C# 프로그램 예제입니다.

using System;
namespace Demo {
    public class Program {
        public static void Main(string[] args) {
            int[] arr1 = new int[] {
                77,
                34,
                59,
                42,
                99
            };
            int[] arr2 = new int[5];
            int[] arr3 = new int[5];
            int i, j = 0, k = 0;
            for (i = 0; i < 5; i++) {
                if (arr1[i] % 2 == 0) {
                    arr2[j] = arr1[i];
                    j++;
                } else {
                    arr3[k] = arr1[i];
                    k++;
                }
            }
            Console.WriteLine("Even numbers...");
            for (i = 0; i < j; i++) {
                Console.WriteLine(arr2[i]);
            }
            Console.WriteLine("Odd numbers...");
            for (i = 0; i < k; i++) {
                Console.WriteLine(arr3[i]);
            }
        }
    }
}

실행 결과

Even numbers...
34
42
Odd numbers...
77
59
99

코드 설명

  • 변수 jk는 각각 짝수 배열과 홀수 배열에 요소가 저장된 개수를 추적합니다.
  • 반복문 안에서 arr1[i] % 2 == 0 조건이 참이면 짝수이므로 arr2에 저장하고 j를 증가시킵니다.
  • 조건이 거짓이면 홀수이므로 arr3에 저장하고 k를 증가시킵니다.
  • 분류가 끝나면 jk 값을 이용해 실제 저장된 요소만큼만 출력합니다.

이처럼 나머지 연산자 하나만으로도 배열 요소를 손쉽게 분류할 수 있습니다. LINQ의 Where() 메서드를 사용하면 더 간결하게 처리할 수도 있지만, 기본 문법만으로 구현할 때는 위와 같은 방식이 가장 직관적입니다.