반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
05-19 00:03
관리 메뉴

ImJay

[C언어] 백준 10818번 : 최소, 최대 본문

백준 - C, C++/05. 1차원 배열

[C언어] 백준 10818번 : 최소, 최대

ImJay 2020. 9. 24. 00:01
반응형

백준 10818번 : 최소, 최대

- 사용언어 : C언어

www.acmicpc.net/problem/10818

1. 문제

N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.

2. 코드

#include <stdio.h>
#include <limits.h>

int main(void) {
    int input;
    int max=INT_MIN, min=INT_MAX;
    
    scanf("%d", &input);
    int num[input];
    
    for(int i=0; i<input; i++) {
        scanf("%d ", num+i);
        if (num[i] > max) max = num[i];
        if (num[i] < min) min = num[i];
    }
    
    printf("%d %d", min, max);
}

3. 풀이

먼저 for문에서 입력을 받으면 최댓값과 최솟값의 초기값을 정해줘야 하는데 그 부분이 조금 어려웠습니다.

 

인터넷을 찾아보니 정수형 변수 범위 안에서 최솟값과 최댓값을 지정 해줄 수 있다는 것을 알 수 있었습니다.

 

INT_MIN 은 정수형 범위에서 정의되는 최솟값이며, INT_MAX 는 정수형 범위에서 정의되는 최댓값입니다.

 

그리고 이를 사용해주려면 <limits.h> 헤더파일을 포함해주셔야 합니다.

 

당연히 처음 입력 받는 정수 num[0]이 최솟값과 최댓값으로 처음 설정되어야 하기에,

 

int max=INT_MIN, min=INT_MAX; 으로 지정해주었습니다.

 

또 하나 헷갈렸던 부분은 배열의 크기를 어떻게 지정해주느냐인데,

 

아쉽게도 C언어에서는 int num[]; 과 같이 편하게 크기를 지정하지 않는 방법은 없는 것 같아요.

 

동적 할당은 아직 배우지 않았기 때문에 ..

 

scanf("%d", &input);
int num[input];

 

이와 같이 num 배열의 크기를 지정하였습니다.

 

 

반응형
Comments