정수 2개를 입력받아 합을 출력하는 프로그램을 작성해보는 문제이다.
(단, 입력되는 정수는 -1073741824 ~ 1073741824이다.)
<풀이>
입력되는 정수의 값의 범위에서 만약 최솟값 2개 가 입력이 된다면,
int형으로 표현할 수 있는 값의 표현 범위를 넘어서게 된다. 그래서 값의 표현 범위가 더 큰 자료형을 선택하여 풀어줘야 하는데, long long int를 사용해 풀어주었다.
#include<stdio.h>
int main(void)
{
long long int a, b;
scanf("%lld %lld", &a, &b);
printf("%lld", a + b);
return 0;
}
<오답>
#include<stdio.h>
int main(void)
{
unsigned int a, b;
scanf("%u %u", &a, &b);
printf("%u", a+b);
return 0;
}
unsigned int형의 값의 표현 범위는 0 이상부터이므로 이 문제에선 사용하기에 부적합하다고 할 수 있다.
(코드 업 1028번 풀이 참조)