donchanee

배열 문제 #7. 본문

프로그래밍/C언어

배열 문제 #7.

donchanee 2018. 5. 22. 14:02
728x90

이어서, 결과로 나온 배열에 다시 2단계 배열 문제 #6.를 계속 적용하여 전체 N개의 정수 중 가장 큰 수, 가장 작은 수가 남을 때 까지 반복하는 프로그램을 작성하시오. 








풀이는 다음과 같다. 문제 #6 의 풀이를 그대로 가져다 수정하였다.


#include <stdio.h>


int main(void){

    

    int N, i, j, a[20], b[20];

    int max_a[20], min_b[20], max, min, cnt;

    

    scanf("%d", &N);

    for(i=0;i<N;i++) {

        scanf("%d", &a[i]);

        b[i] = a[i];

    }

    

    for(i=N-1;i>=0;i--)

        printf(" %d", a[i]);

    printf("\n");

    

    while(1) {

        cnt=0;

        for(i=0;i<N;i+=3) {

            max = a[i];

            min = b[i];

            

            for(j=i+1; j<i+3 && j<N; j++) {

                if (a[j]>max)

                    max = a[j];

                if (b[j]<min)

                    min = b[j];

            }

            max_a[cnt] = max;

            min_b[cnt] = min;

            cnt++;

        }

    

        for(i=0; i<cnt; i++) {

            printf(" %d", max_a[i]);

        }

        printf("\n");

        for(i=0; i<cnt; i++) {

            printf(" %d", min_b[i]);

        }

        printf("\n");

        

        N = cnt;

        if(N==1)

            break;

        for(i=0;i<N;i++) {

            a[i] = max_a[i];

            b[i] = min_b[i];

        }

    }

    

    return 0;

}


'프로그래밍 > C언어' 카테고리의 다른 글

문자열에 대한 3문제  (0) 2018.12.07
포인터에 대한 4문제  (0) 2018.10.02
배열 문제 #6.  (0) 2018.05.20
배열 문제 #5.  (0) 2018.05.19
배열 문제 #4.  (0) 2018.05.18