오버플로우

    [C] C언어 코딩 도장 8.12 심사문제: 오버플로우

    주의! 책에는 세미 콜론까지 공백으로 나오는데 온라인은 세미 콜론이 공백이 아니다. 이 답은 온라인 기준의 정답이다. 다음 소스 코드를 완성하여 -inf가 출력되게 만드세요. 표준 출력 -inf judge_real_number_overflow.c #include #include int main() { float num1 = _________; num1 = num1 * 1000.0f; printf("%f\n", num1); return 0; } 정답 -FLT_MAX 풀이 오버플로우가 일어났는데 앞에 마이너스가 붙어있다. 따라서 FLT_MAX에 -를 붙여 -FLT_MAX로 하면 된다.

    [C] C 언어 코딩 도장 7.11 심사문제: 정수형 변수 선언과 오버플로우

    다음 소스 코드를 완성하여 0 0 -128이 출력되게 만드세요. 표준 출력 0 0 -128 judge_integer_overflow.c #include int main() { __________________ __________________ __________________ num1 = 65536; num2 = 4294967296; num3 = 128; printf("%u %u %d\n", num1, num2, num3); return 0; } 정답 unsigned short int num1; unsigned long int num2; char num3; 풀이 num1과 num2에 값을 할당할 때 분명 0이 아닌 수로 할당했는데, 출력에 0으로 나왔다. 아! 이것은 오버플로우구나! 그렇다. 근데 음수가..