C언어 기초: 배열 예제(5)

kevinkim2586·2020년 4월 11일
0

C언어

목록 보기
11/23
post-thumbnail

드디어 배열의 마지막 문제다. 이번 주의 마지막이라는거지, 다음 주에는 또 어떤 어려운 문제가 나올지 모르겠다ㅎㅎ. 이번 주는 그나마 실습 문제들이 쉬워서 모든 문제들을 빠르게 풀 수 있었지만, 점점 어려워지는게 느껴진다.

벌써부터 포인터 다루기가 두렵다..

그럼 마지막 문제를 보자.

다시 한 번 0이 입력될 때까지~~~의 문제가 포함되었다. 그 부분은 이제 많이 익숙하니 패스하고, 가장 큰 수와 가장 작은 수를 보자.

가장 큰 수와 가장 작은 수라고 했으니, 변수 max와 min이 필요할 것 같다.

int max;
int min;

여기서 중요한게, 배열을 모두 입력 받으면, max와 min 변수의 값을 초기화한 상태에서 비교해야 한다는 것이다. 즉, ary라는 배열에 값들이 입력되면, max와 min 변수 둘다 ary[0] 으로 초기화해줘야 한다는 말이다.

max=ary[0];
min=ary[0];

그 다음에 비교를 해줘야 한다.

if(max<ary[j]){
    max=ary[j];
}



if(min>ary[j]){
    min=ary[j];
}

핵심적인 부분은 코딩을 완료했으니 손코딩 필기를 보도록 하자.

마지막으로 최종 코드를 보자:

#include <stdio.h>

int main(void)
{
    int ary[30], i=0, num, max, min, length=0;
    
    while(1){
        
        scanf("%d", &num);
        
        if(num==0){
            max=ary[0];
            min=ary[0];
            for(int j=1;j<length;j++){
                if(max<ary[j]){
                    max=ary[j];
                }
                else{
                    continue;
                }
            }
            for(int j=1;j<length;j++){
                if(min>ary[j]){
                    min=ary[j];
                }
                else{
                    continue;
                }
            }
            break;
        }
        else{
            ary[i]=num;
            i++;
            length++;
        }
    }
    
    printf("%d %d", max, min);
    
    return 0;
}
profile
공개적으로 학습하고자 만든 블로그

0개의 댓글