[C언어 코드업 문제풀이] CodeUp 1063 : [기초-삼항연산] 두 정수 입력받아 큰 수 출력하기(설명)

코드업 1063번 두 정수 입력 받아 큰 수 출력하기 문제 풀이 해답입니다.

 

1. 문제 설명

 

입력된 두 정수 a, b 중 큰 값을 출력하는 프로그램을 작성해보자.
단, 조건문을 사용하지 않고 3항 연산자 ? 를 사용한다.

참고
3개의 요소로 이루어지는 3항(ternary) 연산자는
"조건식 ? (참일 때의 값) : (거짓일 때의 값)” 의 형태로 사용하는 연산자이다.
- 조건식의 계산 결과가 참인 경우에는 ':' 왼쪽의 값 또는 식으로 바뀌고,
- 거짓인 경우에는 ':' 오른쪽의 값 또는 식으로 바뀐다.

예를 들어
123 > 456 ? 0 : 1
과 같은 표현식은 123 > 456 의 비교연산 결과가 거짓이므로 1이 된다.

예시
printf("%d", a>b ? a:b); //두 값 중 큰 값이 출력된다.

예시 코드는 a>b 의 결과가 참(1)이면 (a>b ? a:b)의 결과는 a가 되고,
거짓(0)이면 (a>b ? a:b)의 결과는 b가 된다. 

 

 

2. 입력

 

두 정수가 공백을 두고 입력된다.
-2147483648 ~ +2147483647 

 

3. 출력

 

두 정수 중 큰 값을 10진수로 출력한다. 

 

4. 입력 예시

 

123 456

 

5. 출력 예시

 

456

 

6. 문제 풀이

 

#include <stdio.h>
 
 
int main (void)
{
    int num1,num2,result;
 
    
    scanf("%d %d"&num1 , &num2);
    result = num1>num2 ? num1:num2;
    
    printf("%d",result);
 
    
    return 0;
}
 

 

삼항연산으로 더 큰수를 찾는 문제입니다.

3항 연산은    

 

값1 (조건) 값2 ? 값1 : 값2

 

으로 이루어져 있으며 참일경우 왼쪽의 값1, 거짓일경우 오른쪽의 값2가 반환됩니다.

 

다음 예제에서는 result = num1>num2 ? num1:num2; 라는 3항 연산이 사용되었습니다.

num1이 num2보다 크다면 num1이 result가 될것이고 num1이 num2보다 크지 않다면 num2가 

result 결과가 되어 입력받은 수 중 가장 큰 수가 result 값이 됩니다.

댓글()