다음 C 코드를 실행했을 때의 결과를 소수 둘째 자리까지 쓰시오.
#include <stdio.h>
double mean_by_index(const int values[], int count) {
int total = 0;
for (int i = 0; i < count; ++i) total += values[i];
return (double)total / count;
}
double mean_by_pointer(const int *first, const int *last) {
int total = 0;
const int *cursor = first;
while (cursor < last) total += *cursor++;
return (double)total / (last - first);
}
int main(void) {
int scores[] = {62, 48, 71, 39, 55, 44, 68, 51, 37, 55};
int size = (int)(sizeof(scores) / sizeof(scores[0]));
printf("%.2f", mean_by_index(scores, size)
+ mean_by_pointer(scores, scores + size));
return 0;
}모범답안
106.00
풀이와 판단 근거
배열 원소의 합은 530이고 원소 수는 10이므로 두 함수가 계산하는 평균은 각각 53.00이다. 첫 함수는 첨자 표현으로, 둘째 함수는 시작 포인터부터 끝 직전 포인터까지 이동하며 같은 원소를 합산한다.
두 평균을 더하면 106.00이며 printf의 %.2f 지정 때문에 소수 둘째 자리까지 출력된다.
자주 틀리는 지점
- 두 평균을 다시 2로 나누어 53.00으로 답함
- 끝 포인터가 가리키는 위치까지 원소에 포함
- 정수 나눗셈으로 처리해 소수 형식을 누락
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.