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

+ Recent posts