[C언어 코드업 문제풀이] CodeUp 1167 : 두 번째로 작은 수
ET의 공부/C언어 연습문제[ 코드업 ]2020. 1. 3. 22:47
코드업 1167 두 번째로 작은 수 문제 풀이 해답입니다.
1. 문제 설명
세 개의 숫자가 주어질 때 두번째로 작은 수를출력해보자.
예를 들어, 5 9 2 가 있다면 두번째로 작은 수는 5이다.
2. 입력
세 개의 정수가 공백으로 구분되어 입력된다.
3. 출력
세 개의 정수 중 두번째로 작은 숫자를 출력한다.
4. 입력 예시
201 20 3
5. 출력 예시
20
6. 문제 풀이
#include <stdio.h>
int main (void)
{
int num1, num2, num3, temp;
scanf("%d %d %d", &num1, &num2, &num3);
//순서대로 num1,num2,num3 로 정렬해 num2를 출력한다.
// ex 7 3 4
// 1. num1과 num2를 비교하여 작은 수가 num1에 들어가게 한다. ->3 7 4
// 2.
if(num1 >= num2){
temp = num2;
num2 = num1;
num1 = temp;
}
if(num2 >= num3){
temp = num3;
num3 = num2;
num2 = temp;
}
if(num1 >= num2){
temp = num2;
num2 = num1;
num1 = temp;
}
printf("%d",num2);
return 0;
}
|
중간에 값을 저장하는 temp 변수를 선언하였습니다.
먼저 num1 과 num2의 값을 비교해 num1이 크다면
temp = num2;
num2 = num1;
num1 = temp;
를 통해 num1과 num2의 위치를 바꾸어 줍니다. ex) 201 20 3 -> 20 201 3
두번째 는 같은 원리로 num2와 num3의 값을 비교해 줍니다.(num2는 바뀌었을 수도 있고 바뀌지 않을 수도 있습니다.)
20 201 3 -> 20 3 201
세 번째도 마찬가지로 바꾸어 줍니다. 20 3 201 -> 3 20 201
이렇게 구성한다면 정수를 크기별로 정렬할 수 있습니다.
'ET의 공부 > C언어 연습문제[ 코드업 ]' 카테고리의 다른 글
[C언어 코드업 문제풀이] CodeUp 1169 : 나이 계산 2 (0) | 2020.01.03 |
---|---|
[C언어 코드업 문제풀이] CodeUp 1168 : 나이 계산 1 (0) | 2020.01.03 |
[C언어 코드업 문제풀이] CodeUp 1166 : 윤년 판별 (0) | 2020.01.03 |
[C언어 코드업 문제풀이] CodeUp 1165 : 축구의 신 1 (2) | 2020.01.03 |
[C언어 코드업 문제풀이] CodeUp 1164 : 터널 통과하기 1 (0) | 2020.01.03 |
댓글()