배열이란 무엇인가?
배열이란, 같은 자료형의 변수를 여러 개 선언해야 할 때,
하나의 이름으로 여러 개의 메모리 공간을 묶어서 사용하는 방식입니다.
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이 들어갑니다.
배열을 이용한 최댓값 구하기
로직
- max라는 변수에 배열의 첫 번째 값(a[0])을 저장합니다.
- for문으로 배열의 나머지 값을 차례대로 검사합니다.
- 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 |