카테고리 없음
[C언어] 배열과 중첩된 반복문
codecodekode
2024. 10. 16. 17:06
아래 코드에 대한 출력 값을 작성하시오.
void main{
int []result = int[5];
int []arr = [77,32,10,99,50];
for(int i = 0; i < 5; i++) {
result[i] = 1;
for(int j = 0; j < 5; j++) {
if(arr[i] <arr[j]) result[i]++;
}
}
for(int k = 0; k < 5; k++) {
printf(result[k]);
}
}
이 코드는 배열 arr의 각 요소가 몇 번째로 큰 값인지를 구하는 프로그램입니다. 배열 arr의 각 요소와 다른 요소들을 비교해서 그 값보다 작은 요소가 있을 때마다 result[i] 값을 1씩 증가시킵니다. 최종적으로 result 배열에는 각 요소의 크기 순위가 저장됩니다.
코드 분석
-
- 배열 arr에는 5개의 값 [77, 32, 10, 99, 50]이 저장됩니다.
- 배열 result는 각 요소의 순위를 저장하기 위한 배열로, 처음에는 모두 1로 초기화됩니다.
- 중첩된 반복문:
- i번째 요소 arr[i]와 j번째 요소 arr[j]를 비교합니다.
- 만약 arr[i]가 arr[j]보다 작다면, result[i] 값을 1 증가시킵니다.
- 즉, arr[i]가 다른 요소보다 작을 때마다 result[i]의 값이 증가하여 그 값이 몇 번째로 큰 값인지 나타냅니다.
- 최종 출력:
- 각 result[k] 값을 출력합니다.
각 값에 대한 순위 계산
- arr = [77, 32, 10, 99, 50]
- arr[0] = 77:
- 77은 99보다 작기 때문에 result[0]이 2가 됩니다.
- 나머지 값(32, 10, 50)보다는 큽니다.
- result[0] = 2
- arr[1] = 32:
- 32는 77, 99, 50보다 작기 때문에 result[1]은 4가 됩니다.
- 10보다는 큽니다.
- result[1] = 4
- arr[2] = 10:
- 10은 모든 값보다 작기 때문에 result[2]는 5가 됩니다.
- result[2] = 5
- arr[3] = 99:
- 99는 가장 크기 때문에 result[3]은 1입니다.
- result[3] = 1
- arr[4] = 50:
- 50은 77과 99보다 작고, 32, 10보다 크기 때문에 result[4]는 3이 됩니다.
- result[4] = 3
최종 출력값:
result 배열의 값은 [2, 4, 5, 1, 3]입니다.