모두CBT

23-2다음은 배열을 내림차순으로 정렬하는 C 프로그램이다. 아래 실행… | 2023년 정보처리기사실기 2회차 기출문제 상세 페이지

13

23-2

다음은 배열을 내림차순으로 정렬하는 C 프로그램이다. 아래 실행 결과가 나오도록 빈칸에 들어갈 연산자를 적으시오.

#include <stdio.h>

int main(void) {
    int v[] = {37, 5, 81, 14, 60};
    int n = sizeof(v) / sizeof(v[0]);
    int p = 0, q, t;
    do {
        q = p + 1;
        do {
            if (v[p] ____ v[q]) {
                t = v[p];
                v[p] = v[q];
                v[q] = t;
            }
            q++;
        } while (q < n);
        p++;
    } while (p < n - 1);
    for (p = 0; p < n; p++)
        printf("%d ", v[p]);
    return 0;
}

[실행 결과] 81 60 37 14 5

해설

<


[해설]

바깥 반복이 자리 p를 고정하고, 안쪽 반복이 그 뒤의 원소 v[q]와 하나씩 비교해 필요하면 맞바꾼다. 선택 정렬처럼 한 바퀴가 끝나면 p 자리에 남은 원소 중 극값이 들어간다.

내림차순이므로 p 자리에는 가장 큰 값이 와야 한다. 앞의 값이 뒤의 값보다 작을 때(v[p] < v[q]) 교환해야 큰 값이 앞으로 모인다.

빈칸에 >를 넣으면 오름차순(5 14 37 60 81)이 된다. 따라서 정답은 <이다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.