변수 sum에 대한 정확한 값을 계산하지 못하는 이유를 설명세요 #include <stdio.h> int main(void) { int i = 5; unsigned int sum = 0; while ( i >= -10) { sum = sum + i; i--; } /* end while */ printf("Sum : %d", sum); return 0; } /* end function main */
unsigned int 는 음수를 담을 수 없어서 i 가 음수가 될 때 sum 이 큰 양수로 바뀌어 원하는 결과와 달라집니다. sum 을 int 로 선언하면 음수 합계도 정확히 계산됩니다.