FastCampus All-In-One 패키지 중 C/C++ 수업을 듣고 정리한 자료입니다.
실행환경: Windows 10
학습목표
- 함수의 개념을 이해하고 사용 방법을 숙지
- 함수의 정의와 호출 방법을 알아보자
- 재귀함수에 대해 공부
함수
반환자료형 함수명 (매개변수) {
// 수행될 명령어
return 반환할 값;
}
- 특정한 기능에 대해 소스코드가 반복되는 것을 줄이도록 해준다
매개변수
와반환할 값
은 경우에 따라 없을수도 있다.- 없을때의 자료형은
void
- 없을때의 자료형은
함수 예시
더하기 함수 만들기
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main(void) {
printf("%d\n", add(10, 20));
system("pause");
}
결과
30
계속하려면 아무 키나 누르십시오 . . .
사칙연산 함수 만들기
#include <stdio.h>
void calculator(int a, int b) {
printf("%d + %d = %d\n", a, b, a + b);
printf("%d - %d = %d\n", a, b, a - b);
printf("%d * %d = %d\n", a, b, a * b);
printf("%d / %d = %d\n", a, b, a / b);
printf("\n");
}
int main(void) {
calculator(10, 3);
calculator(15, 2);
calculator(18, 4);
system("pause");
}
결과
10 + 3 = 13
10 - 3 = 7
10 * 3 = 30
10 / 3 = 3
15 + 2 = 17
15 - 2 = 13
15 * 2 = 30
15 / 2 = 7
18 + 4 = 22
18 - 4 = 14
18 * 4 = 72
18 / 4 = 4
계속하려면 아무 키나 누르십시오 . . .
무한 루프(Infinite Loop)
for (초기화; 조건; 반복 끝 명령어) {
// 조건이 항상 참(true)인 경우 무한 루프 발생
}
- 종료 조건 없이 한없이 반복되는 반복문
- 일부러 발생시키는 경우도 있으나 보통은 개발자의 실수
- 컴퓨터의 성능상 좋지 않기 때문에 하지 않는것이 좋음
재귀 함수
- 자기 자신을 포함하는 함수
- 기본적으로 자기 자신을 계속 불러냄
- 따라서, 반드시 재귀 종료 조건이 필요
While문 예시
재귀 함수를 이용한 팩토리얼
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int factorial(int a) {
if (a == 1) return 1;
else return a * factorial(a - 1);
}
int main(void) {
int n;
printf("n 팩토리얼을 계산합니다. ");
scanf("%d", &n);
printf("%d\n", factorial(n));
system("pause");
}
- f(5)인 경우
- 5 x f(4) -> 4 x f(3) -> 3 x f(2) -> 2 x f(1) -> 1
결과
n 팩토리얼을 계산합니다. 5
120
계속하려면 아무 키나 누르십시오 . . .
요약
-
C언어는 함수로 시작해서 함수로 끝나는 언어
-
재귀함수는 반복적으로 자기 자신을 불러내므로
경우에 따라 연산 횟수가 급격히 증가할 수 있다.
Comments