문제
다음 C 코드의 실행 결과를 쓰시오.
C#include <stdio.h> typedef struct { int code; float value; } Record; int calculate(Record *rec, int size) { int result = 0; for (int i = 0; i < size; i++) { if (rec[i].code % 2 == 1) { result += (int)(rec[i].value * rec[i].code); } } return result; } int main() { Record data[4] = {{3, 2.5}, {4, 1.8}, {5, 3.2}, {6, 2.1}}; int answer = calculate(data, 4); printf("%d", answer); return 0; }
정답
23
23
해설
calculate 함수는 구조체 배열에서 code가 홀수인 경우만 처리함. data[0]: code=3(홀수), valuecode = 2.53 = 7.5 → (int)7. data[1]: code=4(짝수), 무시. data[2]: code=5(홀수), valuecode = 3.25 = 16.0 → (int)16. data[3]: code=6(짝수), 무시. result = 7 + 16 = 23