1) 배열이란?
- 동일한 자료형 여러개를 묶어서 처리하는 자료 구조
- 변수이름과 인덱스(index)를 이용하여 데이터를 표현
2) 배열의 필요성
- 동일한 자료형 여러 개를 선언하는 경우 변수가 여러 개 필요
- 배열을 이용하면 하나의 변수만 필요하여 효율적인 프로그래밍 가능
3) 배열의 크기 지정
- 정수(양수)값을 가지는 변수 또는 상수로 지정
- #define문의 상수를 이용하여 지정
- 한번 만들어진 배열의 크기는 변경할 수 없음
1) 배열과 반복문의 관계
- 배열의 인덱스값은 0부터 순차적으로 증가함
- 반복문을 이용하면 인덱스값을 순차적으로 증가할 수 있음
2) 배열과 문자열의 관계
- 배열은 문자열을 저장할 수 있음
- 문자열 마지막에 널(Null) 문자('\0')가 자동으로 대입됨
- 문자열의 크기 = 문자의 개수 + 1
- 널문자는 문자열의 마지막을 표시함
3) 문자형 배열 출력하기
- 문자형 배열이름을 대표로 사용함(인덱스 사용 안함)
- 형식문자 %s사용
- 배열의 크기보다 큰 문자열은 깨짐
4) 문자형 배열에 문자열 입력 받기
- 문자형 배열 이름을 대표로 사용함(인덱스 사용 안함)
- 문자열 배열 이름 앞에 & 기호를 사용하지 않음
- 형식문자 %s 사용
1) 다차원 배열이란?
- 2차원 배열 이상
- 종류
- 1차원 배열 : 행 1개, 열 N개
- 2차원 배열 : 행 N개, 열 N개 (1차원 배열이 N개)
- 3차원 배열 : 층 N개, 행 N개, 열 N개(2차원 배열이 N개)
2) 2차원 배열의 선언과 초기값
- 행과 열의 크기 지정, 행과 열의 인덱스를 이용하여 초기값 지정
1) 4행*3열의 2차원 배열을 선언하기
2) 2차원 배열의 값을 키보드로 입력받기
3) 행과 열의 개수만큼의 1차원 배열을 만들어 행과 열의 합계를 계산
4) 2차원 배열과 행과 열의 합계 배열을 출력
#include <stdio.h>
#define ROW 4
#define COL 3
int main()
{
int arr[ROW][COL];
int rowSum[ROW] = {0,0,0,0};
int colSum[COL] = {0,0,0};
// 배열 입력받기
for (int row = 0; row < ROW; row++) {
for (int col = 0; col < COL; col++) {
printf("[%d][%d] = ", row, col);
scanf_s("%d", &arr[row][col]);
}
}
// 행과 열 합계 구하기
for (int row = 0; row < ROW; row++) {
for (int col = 0; col < COL; col++) {
rowSum[row] += arr[row][col]; // 행 합계
colSum[col] += arr[row][col]; // 열 합계
}
}
// 출력하기
for (int row = 0; row < ROW; row++) {
for (int col = 0; col < COL; col++) {
printf("%4d", arr[row][col]);
}
printf(" = %4d\n", rowSum[row]);
}
// 열 합계 출력
for (int col = 0; col < COL; col++) {
printf("%4d", colSum[col]);
}
}
<Result>
[0][0] = 1
[0][1] = 2
[0][2] = 3
[1][0] = 4
[1][1] = 5
[1][2] = 6
[2][0] = 7
[2][1] = 8
[2][2] = 9
[3][0] = 10
[3][1] = 11
[3][2] = 12
1 2 3 = 6
4 5 6 = 15
7 8 9 = 24
10 11 12 = 33
22 26 30