[CS_study] 함수

나라리야·2021년 4월 26일
0

CS_study

목록 보기
7/18
post-thumbnail

함수

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) 재귀함수는 반복적으로 자기 자신을 불러내므로 경우에 따라서 연산 횟수가 급격히 증가할 수 있습니다.

profile
Code의 美를 추구하는 개발자 🪞

0개의 댓글