C

배열

1space 2025. 6. 12. 22:57

배열이란 무엇인가?

배열이란, 같은 자료형의 변수를 여러 개 선언해야 할 때,
하나의 이름으로 여러 개의 메모리 공간을 묶어서 사용하는 방식입니다.

int a[5];

위 코드는 정수형 변수 5개를 선언한 것입니다.
이 변수들의 이름은 모두 a 이며, 각각을 인덱스(index) 번호로 구분합니다.

  • a[0], a[1], a[2], a[3], a[4]
    → 총 5개의 공간이 생기며, 번호는 항상 0부터 시작합니다.

 

배열에 값 넣기 / 입력 받기

a[1] = 5;         // 1번 인덱스에 5 저장
scanf("%d", &a[3]); // 3번 인덱스에 사용자 입력 받기
  • 각 요소에 접근할 땐 []를 사용하여 번호를 지정해야 합니다.
  • 배열을 선언만 하고 값을 넣지 않으면, 가비지 값(알 수 없는 값)이 들어있습니다.

 

 

배열 초기화 방법

전부 수동으로 넣기

a[0] = 1; 
a[1] = 2; // ...

 한 번에 초기화

int a[5] = {1, 2, 3, 4, 5};
  • 5개의 요소에 차례대로 값이 들어갑니다.
  • 일부만 초기화하면 나머지는 자동으로 0이 들어갑니다.

 

 

배열을 이용한 최댓값 구하기

로직

  1. max라는 변수에 배열의 첫 번째 값(a[0])을 저장합니다.
  2. for문으로 배열의 나머지 값을 차례대로 검사합니다.
  3. max보다 더 큰 값이 있으면 max를 그 값으로 바꿉니다.

코드 예시

int a[5] = {1, 9, 3, 8, 4};
int max = a[0];

for (int i = 1; i < 5; i++) {
    if (a[i] > max)
        max = a[i];
}
  • 이 방법은 배열의 수가 많아질수록 더 유용합니다.
  • 예를 들어 100개, 1000개일 때도 같은 방식으로 반복하면 됩니다.

 

 

2차원 배열의 개념

정의

2차원 배열은 1차원 배열을 여러 개 모아 놓은 형태입니다.

int a[3][4];
  • 이는 행(row)이 3개, 열(column)이 4개인 배열을 뜻합니다.
  • 즉, a[0][0] ~ a[2][3]까지 총 3 × 4 = 12개의 공간이 생깁니다.

💡 메모리는 실제로는 1차원적으로 배치되지만,
프로그래머가 2차원처럼 논리적으로 접근할 수 있도록 표현한 것입니다.

 

 

구구단을 2차원 배열에 저장하기

 

목표

  • a[i][j]에 (i+2) * (j+1)을 저장합니다.
  • i는 단(2단9단), j는 곱하는 수(19)를 의미합니다.

코드 예시

 
int a[8][9]; // 8단 ~ 9단, 각 단당 9개 곱
int i, j;

for (i = 0; i < 8; i++) { // i: 0 ~ 7 → 2단 ~ 9단
    for (j = 0; j < 9; j++) { // j: 0 ~ 8 → 1 ~ 9
        a[i][j] = (i + 2) * (j + 1);
        printf("%d ", a[i][j]); // 각 곱셈 결과 출력
    }
    printf("\n"); // 단별 줄바꿈
}

 

예시 출력 결과 (일부)

정리하자면:

  • i + 2: 실제 단 (2단부터 시작)
  • j + 1: 곱하는 수 (1부터 시작)
  • a[i][j]에는 해당 곱셈 결과가 저장됩니다.
 

'C' 카테고리의 다른 글

포인터  (0) 2025.06.13
변수와 메모리  (0) 2025.06.13
난수 생성  (0) 2025.06.12
입출력 함수와 버퍼  (0) 2025.06.12
제어문 - while / do while문  (0) 2025.06.12