- 이중 반복문 (2)
- 이중 반복문
순회 변수로 i, j, k, … 순으로 작성합니다.
int i, j;
for (i 초기식; i 조건식 ; i 증감식)
{
for (j 초기식; j 조건식 ; j 증감식)
{
명령어;
...
}
}
- “천천히 읽기”와 이중 반복문

- 이중 반복문 꿀팁
1. 줄의 개수를 파악하고 줄 번호 매기기.
2. 각 줄의 칸 개수를 파악하고 칸 번호 매기기.
3. 각 칸의 출력을 적기.
- 반대로 해보기

- 이중 반복문의 응용
조금 다른 형태의 이중 반복문. 반복문 안에 반복문이 여러 개 들어가 있는 경우입니다.
int i, j, k;
for (i 초기식; i 조건식 ; i 증감식)
{
for (j 초기식; j 조건식 ; j 증감식)
{
작은 명령어1
...
}
for (k 초기식; k 조건식 ; k 증감식)
{
작은 명령어2
...
}
}
- 이중 반복문 응용

- 1차원 배열 (2)
- 배열의 필요성
지금까지 배운 내용으로만 대선 개표 프로그램을 만든다고 가정해봅시다.
어떤 사람이 어떤 후보를 뽑았는지 저장하는 것이 가장 중요합니다.
저장하기 위해서 5천만개의 변수를 아래와 같이 선언합니다.
ex) int Vote1, Vote2, Vote3, …
그러나 이번에 배울 배열을 사용한다면 아주 손쉽게 5천만개의 그릇을 만들 수 있습니다.
ex) int Vote[50000000];
그리고는 scanf() 함수와 반복문으로 투표 시작합니다.
- 배열(Array)
자료구조 중 가장 기초가 되는 자료구조.
사용할 메모리 크기를 고정해서 선언하는 것이 특징입니다.
선언된 후에는 절대 그 크기를 변경 불가합니다.
그래서 정적인 자료구조라고도 합니다. 선언된 메모리는 연속적으로 할당됩니다.
- 배열 호텔
배열을 호텔에 비유해봅시다. 단, 이 호텔에는 규칙이 있습니다.
1. 사용할 객실 개수를 객실 사용전에 예약해야만 합니다. 예약된 개수는 변경 불가능합니다.
2. 연속된 객실로 배정 받게됩니다.
3. 객실의 번호는 0번부터 시작합니다. 객실의 번호를 index라고 부릅니다.
// 선언 방법
자료형 배열명[배열크기];
// 선언과 동시에 초기화 방법
자료형 배열명[배열크기] = { 값0, 값1, ..., 값(배열크기-1) };
// 자료형 호텔명[객실개수] = { 사람0, 사람1, ..., 사람(객실개수-1) };
- 배열 1

- 배열 관련 고찰
배열의 index는 항상 0부터 시작합니다.
한국인이라면, 건물도 1층부터 시작하기에 자연수가 익숙합니다. 0부터하면 익숙하지 않습니다.
다만 배열의 크기를 1 크게 잡는다면 1부터 시작해도 되긴합니다만,
앞으로 대부분의 소스코드들은 0부터 시작하기 때문에 익숙해질 필요가 있습니다.
int arr[11]; // 이렇게 잡아야 index 1 ~ 10까지 사용가능.
int i;
for (i = 1; i <= 10; ++i)
- 배열 2

- 2차원 배열 (2)
- 2차원 배열
이해 할 때는 1차원 배열을 쌓아올린 형태로 이해하면 됩니다.
실제로는 메모리 상에는 1차원 배열이 나열되어 있고, 2차원인 척을 해줍니다.
// 선언 방법
자료형 배열명[배열크기1][배열크기2];
// 선언과 동시에 초기화 방법
자료형 배열명[줄개수][칸개수] = { { 값00, 값01, ..., 값0(칸개수-1)},
...
{ { 값(줄개수-1)0, 값(줄개수-1)1, ..., 값(줄개수-1)(칸개수-1) } };
// 자료형 호텔명[줄개수][칸개수] = { { 객실00, 객실01, ... , 객실0(칸개수-1)},
// ...
// { { 객실(줄개수-1)0, 객실(줄개수-1)1, ... , 객실(줄개수-1)(칸개수-1) } };
- 2차원 배열 1

- 2차원 배열 2

- 함수 개론 (2)
- 함수(Function)
프로그래밍 언어에서 함수란, 코드 뭉치.
반복되는 코드 뭉치가 있다면 해당 코드 뭉치를 함수로 만들어서 재사용성을 높힐 수 있습니다.
입력 혹은 출력이 있는 경우 대부분 다 함수라고 봐도됩니다.
- printf()도 함수, main()도 함수
입력으로 문자열을 받아서 화면에 출력해주는 printf()도 함수입니다.
프로그램의 시작점 역할을 하는 main()도 함수였습니다.
- 함수의 필요성
우리는 printf() 함수를 자주 사용해왔습니다. 만약 함수를 몰랐다면 어떻게 되었을까요?
printf()를 쓸 때마다, printf() 함수 내부 코드를 적어줬어야 합니다.
소스코드가 얼마나 복잡할지는 안봐도 비디오입니다.
소스코드는 불필요하게 길어지므로, 해석에 어려움을 줍니다.
- 함수 작성 방법
반환자료형 함수명(매개변수자료형 매개변수명) // 함수 선언(Declaration)이자, 정의(Definition)
{
return 반환값;
}
int main(void)
{
int num = 10; // 자료형 변수명 = 값;
함수명(인자값); // 함수 호출(Call)
return 0;
}
- main() 함수
main() 함수의 반환자료형, 함수명, 매개자료형 매개변수명, 반환값이 뭔지 짚어봅시다.

- PrintOneStar() 함수
별 하나를 출력하는 함수 PrintOneStar()를 선언 및 정의하고 호출하는 소스코드를 작성해보자. 실행 결과도 확인해보자.

- Add() 함수 1
두 수를 전달 받아서 그 합을 출력하는 함수 Add()를 선언 및 정의하고 호출하는 소스코드를 작성. 실행 결과도 확인해보자.

- Add() 함수 2
두 수를 전달 받아서 그 합을 반환하는 함수 Add()를 선언 및 정의하고 호출하는 코드를 작성. main() 함수에서는 반환 받은 값을 int형 변수에 저장했다가 출력하는 소스코드를 작성해보자. 실행 결과도 확인해보자.

'C 언어' 카테고리의 다른 글
| [Unreal Engine 8기] C언어 6일차 (0) | 2026.03.03 |
|---|---|
| [Unreal Engine 8기] C언어 5일차 (0) | 2026.02.27 |
| [Unreal Engine 8기] C언어 3일차 (0) | 2026.02.25 |
| [Unreal Engine 8기] C언어 2일차 (0) | 2026.02.24 |
| [Unreal Engine 8기] C 언어 1일차 (0) | 2026.02.23 |