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)이 된다. 따라서 정답은 <이다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.