1) 함수는 입력을 받아 처리한 뒤에 출력하는 구조를 가진다.
1) 함수는 특정한 기능에 대한 소스코드가 반복되는 것을 줄이도록 해준다.
2) 함수의 형태는 아래와 같다.
반환자료형 함수명(매개변수) {
}
// 수행될 명령어
return 반환할 값;
함수에서 매개변수와 반환할 값은 경우에 따라 없을 수도 있다.
매개변수 및 반환할 값이 없을 때의 자료형은 void 이다.
예제) 말머리 붙이기
#include <stdio.h>
void dice(int input) {
printf("동빈이가 던진 주사위: %d\n", input);
}
int main(void) {
dice(3);
dice(5);
dice(1);
system("pause");
}
예제) 더하기 함수 만들기
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main(void) {
printf("%d\n", add(10, 20));
system("pause");
}
예제) 사칙연산 함수 만들기
#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");
}
1) 재귀함수란 자기 자신을 포함하는 함수입니다.
2) 기본적으로 자기 자신을 계속 불러냅니다.
3) 따라서 반드시 재귀 종료 조건이 필요합니다.
예제 ) 재귀 함수를 이용한 팩토리얼
#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");
}
1) C언어는 함수로 시작해서 함수로 끝나는 언어입니다.
2) 재귀함수는 반복적으로 자기 자신을 불러내므로 경우에 따라서 연산 횟수가 급격히 증가할 수 있습니다.