[문제]
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
[입력]
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
[출력]
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
간단한 문제로써, 사실 오늘 내로 코드 하나는 풀어야겠고, 시간은 없고 해서 이걸로 간단하게 하루를 마무리용으로 했다
(나중에는 더 실력을 쌓아서 좀 더 어려운 문제도 금방 금방 해결할 수 있기를...)
그런데 이 와중에 처음에는 "컴파일 에러"가 나왔다. 다음 코드처럼 if ~ if ~ 대신에 if ~ else if ~를 했기 때문이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
/*본코드는 컴파일에러가 뜬다*/
#include <stdio.h>
int main(void)
{
int N, num;
int max = -1000001, min = 1000001;
scanf("%d", &N);
for (int i = 1; i <= n; i++){
scanf("%d", &num);
if (num > max){
max = num;
}
else if (num < min){
min = num;
}
}
printf("%d %d", min, max);
return 0;
}
|
cs |
결국, else if가 아닌 if문으로 바꿨을 때야 비로소 제대로 맞았다고 나왔다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <stdio.h>
int main(void)
{
int N, num;
int max = -1000001, min = 1000001;
scanf("%d", &N);
for (int i = 1; i <= n; i++){
scanf("%d", &num);
if (num > max){
max = num;
}
if (num < min){
min = num;
}
}
printf("%d %d", min, max);
return 0;
}
|
cs |
출처: https://www.acmicpc.net/problem/10818
'코딩 문제풀이 및 연습 > [C언어]백준' 카테고리의 다른 글
[백준 6749번]Next in line (0) | 2021.03.17 |
---|---|
[백준 2675번]문자열 반복 (0) | 2021.03.16 |
[백준 9012번] Parenthesis (0) | 2020.10.08 |
[백준 2795번] Transactions (0) | 2020.09.05 |
[백준 2753번] 윤년 (0) | 2020.09.05 |