Page 17 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 17
보충수업 1-2 관계 연산자와 등가 연산자
왼쪽과 오른쪽 피연산자의 대소 관계를 판단하는 관계 연산자 <, <=, >, >= 와 값이 같은지의 관계를 판
단하는 등가 연산자 ==, != 는 참이면 int형 1을, 거짓이면 int형 0을 만듭니다.
그림 1C-2에 관계 연산자와 등가 연산자를 사용한 몇 가지 예를 나타내었습니다. 이를테면 식 5 > 3을
평가한 값은 1( a ), 식 5 == 3을 평가한 값은 0( b )입니다. 또 c 와 같이 피연산자가 int형이 아닌 경우
에도 관계식과 등가식을 평가한 값은 0.0이 아닌 0입니다.
a 관계식(int > int) b 등가식(int == int) c 관계식(double < double)
5 > 3 5 == 3 5.7 < 3.2
int 1 int 0 int 0
[그림 1C-2] 관계식과 등가식의 평가
그러면 여러 값에 대해서도 최댓값을 제대로 구할 수 있는지 확인해 보겠습니다. 이런 경우에
는 값을 일일이 입력하면서 테스트하기보다는 아래처럼 프로그램을 작성하는 것이 좋습니다.
실습 1-2 •완성 파일 chap01/max3comb.c
01 /* 세 정수의 최댓값을 구하는 프로그램 */ 실행 결과
02 #include <stdio.h>
max3(3,2,1) = 3
03 max3(3,2,2) = 3
04 /*--- a, b, c의 최댓값을 구합니다. ---*/ max3(3,1,2) = 3
05 int max3(int a, int b, int c) max3(3,2,3) = 3
06 { … 중략 …
07 int max = a; /* 최댓값 */ max3(2,3,2) = 3
max3(1,3,2) = 3
08 if(b > max) max = b;
max3(2,3,3) = 3
09 if(c > max) max = c; max3(1,2,3) = 3
10 return max; 구한 최댓값을 호출한 곳으로 반환
11 }
12
13 int main(void)
14 {
15 printf("max3(%d, %d, %d) = %d\n", 3, 2, 1, max3(3, 2, 1)); /* a > b > c */
16 printf("max3(%d, %d, %d) = %d\n", 3, 2, 2, max3(3, 2, 2)); /* a > b = c */
17 printf("max3(%d, %d, %d) = %d\n", 3, 1, 2, max3(3, 1, 2)); /* a > c > b */
01•기본 알고리즘 17