문제
9개의 서로 다른 자연수가 주어질 때, 이들 중 두 번째 최솟값을 찾고, 그 두 번째 최솟값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 두 번째 최솟값은 12이고, 이 값은 4번째 수이다.
입력
첫째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수가 주어진다. 주어지는 자연수는 10,000,000 보다 작다.
출력
첫째 줄에 두 번째 최솟값을 출력하고, 둘째 줄에 두 번째 최솟값이 몇 번째 수인지를 출력한다.
예제 입력
3
29
38
12
57
74
40
85
61
예제 출력
12
4
#include <stdio.h>
int main() {
//Please Enter Your Code Here
int arr[10];
int a,b;
for (int i = 0; i < 9; i++) {
scanf("%d",&arr[i]);
}
a = arr[0];
for (int i = 0; i < 9; i++) {
if (arr[i] <= a)
a = arr[i]; //a에 최솟값 저장
}
if (a != arr[0]) b = arr[0];
else b = arr[1];
for (int i = 0; i < 9; i++) {
if (arr[i] > a && arr[i] <= b) //최솟값보다 크지만 그중 제일 작은 값을 b에 저장
b = arr[i];
}
printf("%d\n",b);
for (int i = 0; i < 9; i++) {
if (arr[i] == b) {
printf("%d",i+1);
}
}
return 0;
}
'코딩테스트' 카테고리의 다른 글
[C] Card game (0) | 2022.05.26 |
---|---|
[C] 점수 계산 (0) | 2022.05.26 |
[C] 소수 판별 2 (0) | 2022.05.26 |
[C] 삼각형 출력 3 (0) | 2022.05.26 |
[C] 삼각형 출력 2 (0) | 2022.05.26 |