Q. 세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오.
입력.
첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100)
출력.
두 번째로 큰 정수를 출력한다.
함수 형식 매크로를 이용해서 간단하게 값을 바꾸는 방식을 사용했다. (여기서 오류가 났다.)
사용해야 하는 값이 3개 뿐이므로 하나하나 비교하였다.
#include <stdio.h>
#include <stdlib.h>
#define swap(type, x, y) do {type t = x; x = y; y = t;} while(0)
int main(void) {
int i;
int tmp[3];
scanf("%d", &tmp[0]);
for (i = 1; i < 3; i++) {
scanf("%d", &tmp[i]);
if (tmp[i] < tmp[i-1])
swap(int, tmp[i], tmp[i-1]);
}
if (tmp[0] > tmp[1])
swap(int, tmp[0], tmp[1]);
printf("%d", tmp[1]);
return 0;
}
'백준 알고리즘' 카테고리의 다른 글
[C언어] 5618번 (0) | 2020.05.13 |
---|---|
[C언어] 5533번 (0) | 2020.05.12 |
[C언어] 10250번 (0) | 2020.04.17 |
[C언어] 1712번 (0) | 2020.04.15 |
[C언어] 2775번 (0) | 2020.04.14 |