https://www.acmicpc.net/problem/2752
동규는 세수를 하다가 정렬이 하고싶어졌다.
숫자 세 개를 생각한 뒤에, 이를 오름차순으로 정렬하고 싶어 졌다.
숫자 세 개가 주어졌을 때, 가장 작은 수, 그 다음 수, 가장 큰 수를 출력하는 프로그램을 작성하시오.
숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다.
제일 작은 수, 그 다음 수, 제일 큰 수를 차례대로 출력한다.
숫자 3개를 입력했을 때, 오름차순으로 정렬하여 출력하는 문제이다.
#include <stdio.h>
int main(void)
{
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
if (a < b && b < c) {
printf("%d %d %d", a, b, c);
}
else if (a < c && c < b) {
printf("%d %d %d", a, c, b);
}
else if (b < c && c < a) {
printf("%d %d %d", b, c, a);
}
else if (b < a && a < c) {
printf("%d %d %d", b, a, c);
}
else if (c < b && b < a) {
printf("%d %d %d", c, b, a);
}
else
printf("%d %d %d", c, a, b);
return 0;
}
#include <stdio.h>
int main() {
int a, b, c, t;
scanf("%d %d %d", &a, &b, &c);
if (a > b) {
t = a; a = b; b = t;
}
if (b > c) {
t = b; b = c; c = t;
}
if (a > b) {
t = a; a = b; b = t;
}
printf("%d %d %d\n", a, b, c);
return 0;
}
if 문으로 각 경우의 수를 나누어서 해당 경우의 순으로 출력해준다.
a, b, c 순으로 크기를 맞추기 위해 a를 가장 작은 수로, c를 가장 큰 수로 해줘야 한다.
a가 b보다 큰 경우, 변수 t를 임시 저장소로 이용하여 a와 b의 값을 바꿔준다.
b가 c보다 큰 경우, b와 c의 값을 서로 바꿔주면 c가 젤 큰 수가 된다.
마지막으로 a가 b보다 큰 경우, 값을 서로 바꿔주면 a가 젤 작은 수가 된다.
이 문제를 c언어 배운지 얼마 안됐을 때 풀었는데 코드-1이 지금보니 너무 노가다 식이라 웃긴다ㅋㅋㅋㅋ 차라리 중첩 if문을 사용하는게 더 나았을건데ㅋㅋㅋ