C/기초

사용자 정의 함수

컴공 윤서혜 학습일기 2019. 7. 25. 15:57

정해진 특정한 기능을 수행하는 모듈을 의미하며 함수를 적절히 활용하면 하나의 문제를 잘게 분해할 수 있다. 예를들어 이진 탐색 트리는 삽입, 삭제, 순회 등 다양한 함수의 집합으로 구성된다. 만약 사용자 정의 함수가 없다면 오직 메인 함수에서 모든 알고리즘을 처리해야 하는데 이는 작업의 효율성을 저하시킬 수 있다. 또한 함수는 각각의 모듈로서 쉽게 수정되고 보완될 수 있다는 장점이 있다. (즉 매인함수의 크기를 줄여주고 특정한 함수를 분해해서 나중에 합친다. 매인함수가 짧고 다른함수가 많을수록 더욱 더 잘 짜여진 프로그램이라고 할 수 있다. 더 가독성이 좋은 프로그램이라고 할 수 있다.)

 

 

#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif

#include <stdio.h>

// 전역 변수란
int hour;
int minute;
int minuteAdd;

void counter()
{
	minute += minuteAdd;
	hour += minute / 60;
	minute %= 60;
	hour %= 24;

}

int main()
{
	printf("시를 입력하세요 : ");
	scanf("%d", &hour);
	printf("분을 입력하세요 : ");
	scanf("%d", &minute);
	printf("더할 분을 입력하세요 : ");
	scanf("%d", &minuteAdd);
	counter();
	return 0;
}

이렇게 하면 counter함수를 사용함으로써 엄청 식이 짧아진걸 볼 수 있다.

 

 

#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif

#include <stdio.h>

// 특정한 금액을 받아서 가장 적은 거스름 화폐의 개수를 구하는 함수이다.

int smallest(int number)
{
	int count = 0;
	while (number >= 50000)
	{
		number -= 50000; //50000원을 줄어들게 하면
		count++; //50000원권을 사용한 것이므로 개수는 1개가 증가한다.
	}
	while (number >= 10000)
	{
		number -= 10000;
		count++;
	}
	while (number >= 5000)
	{
		number -= 5000;
		count++;
	}
	while (number >= 1000)
	{
		number -= 1000;
		count++;
	}
	while (number >= 500)
	{
		number -= 500;
		count++;
	}
	while (number >= 100)
	{
		number -= 100;
		count++;
	}
	while (number >= 50)
	{
		number -= 50;
		count++;
	}
	while (number >= 10)
	{
		number -= 10;
		count++;
	}
	return count;
}

int main()
{
	int number;
	printf("금액을 입력하세요 : ");
	scanf("%d", &number);
	printf("최소로 뺄 수 있는 화폐의 개수는 %d개 입니다. \n", smallest(number));
    //%d애 smallest(number)을 넣을 수 있는 이유는 smallest함수의 return 값이 int형이기 떄문이다.
	return 0;
}

'C > 기초' 카테고리의 다른 글

조합이란  (0) 2019.07.25
반복 함수와 재귀함수  (0) 2019.07.25
기본 입출력 추가 설명  (0) 2019.07.25
기본 입출력  (0) 2019.07.25
반복문  (0) 2019.07.25