Page 18 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 18
18 printf("max3(%d, %d, %d) = %d\n", 3, 2, 3, max3(3, 2, 3)); /* a = c > b */
19 printf("max3(%d, %d, %d) = %d\n", 2, 1, 3, max3(2, 1, 3)); /* c > a > b */
20 printf("max3(%d, %d, %d) = %d\n", 3, 3, 2, max3(3, 3, 2)); /* a = b > c */
21 printf("max3(%d, %d, %d) = %d\n", 3, 3, 3, max3(3, 3, 3)); /* a = b = c */
22 printf("max3(%d, %d, %d) = %d\n", 2, 2, 3, max3(2, 2, 3)); /* c > a = b */
23 printf("max3(%d, %d, %d) = %d\n", 2, 3, 1, max3(2, 3, 1)); /* b > a > c */
24 printf("max3(%d, %d, %d) = %d\n", 2, 3, 2, max3(2, 3, 2)); /* b > a = c */
25 printf("max3(%d, %d, %d) = %d\n", 1, 3, 2, max3(1, 3, 2)); /* b > c > a */
26 printf("max3(%d, %d, %d) = %d\n", 2, 3, 3, max3(2, 3, 3)); /* b = c > a */
27 printf("max3(%d, %d, %d) = %d\n", 1, 2, 3, max3(1, 2, 3)); /* c > b > a */
28 return 0;
29 }
최댓값을 여러 번 반복해서 구하는 경우에는 함수로 처리하면 편리합니다. 초록색 박스로 표
시한 부분의 max3 함수는 int형 매개변수 a, b, c의 값을 받아 최댓값을 구하고 그것을 int형
값으로 반환하는 함수입니다.
조금만 더! 매개변수를 좀 더 알아볼까요?
함수를 정의할 때 함수에 전달되는 값을 저장하기 위해 변수(variable)를 선언하는데, 이를 매개변수
(parameter) 또는 형식매개변수(formal parameter)라 합니다. 형식매개변수를 일본에서는 가인수(假引數,
임시 인수)라 하고 함수를 호출할 때 사용하는 매개변수의 값(value)을 실인수(actual argument)라고 합니
다. 간단하게 함수를 정의할 때는 ‘매개변수’, 함수를 호출할 때는 ‘실인수’라고 생각하면 됩니다.
main 함수는 max3 함수에 세 값을 실인수로 주어 호출하고 반환값을 화면에 13회 출력합니다.
이 내용은 보충수업 1-3에서 확인하세요.
이 프로그램은 계산 결과를 쉽게 확인하기 위해 최댓값이 3이 되도록 실인수를 조합하였습니
다. 이제 프로그램을 실행해 보겠습니다. 13가지의 조합에 대해 모두 3이 출력되어 최댓값이
바르게 구해진 것을 확인할 수 있습니다.
대소 관계에서 13가지 경우의 수가 나오는 것은 보충수업 1-4에서 확인하세요.
18 C 알고리즘