문제
세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100)
출력
두 번째로 큰 정수를 출력한다.
예제 입력 1 복사
20 30 10
예제 출력 1 복사
20
예제 입력 2 복사
30 30 10
예제 출력 2 복사
30
예제 입력 3 복사
40 40 40
예제 출력 3 복사
40
예제 입력 4 복사
20 10 10
예제 출력 4 복사
10
출처
#include <stdio.h>
void findSec(int num1, int num2, int num3)
{
if (num1 > num2) //A가 가장 큰경우
{
if (num1 > num3)
{
if (num2 > num3)
{
printf("%d", num2);
}
else printf("%d", num3);
}
else if (num2 == num3)printf("%d", num2);
else if (num1 == num3)printf("%d", num1);
else printf("%d", num2);
}
else if (num2 > num3) { //B가 가장 큰경우
if (num1 > num3)
{
if (num2 > num1)printf("%d", num1);
else printf("%d", num2);
}
else if (num1 == num2)printf("%d", num1);
else if (num1 == num3)printf("%d", num1);
else printf("%d", num3);
}
else if (num3 > num1) { //C가 가장 큰경우
if (num2 > num1)
{
if (num3 > num2)printf("%d", num2);
else printf("%d", num3);
}
else if (num2 == num1)printf("%d", num1);
else if (num3 == num2)printf("%d", num1);
else printf("%d", num1);
}
else if (num1 == num2)
{
if (num1 > num3)printf("%d", num1);
else printf("%d", num1);
}
else if (num2 == num3)
{
if (num1 > num2)printf("%d", num2);
else printf("%d", num2);
}
else if (num3 == num1)
{
if (num3 > num2)printf("%d", num3);
else printf("%d", num3);
}
else if (num1 == num2 && num2 == num3)
printf("%d", num1);
}
void main()
{
int A = 0, B = 0, C = 0;
scanf("%d %d %d", &A, &B, &C);
findSec(A, B, C);
}
반례.. 2 1 3 넣으면 틀리네요.. 곧 다시 수정하겠습니다.