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
   12   13   14   15   16   17   18   19   20   21   22