kangsy763   4년 전

pair 안의 자료형을 long 이 아닌 int로 하였을 경우에는 틀렸습니다 라고 나왔는데 long으로 바꾸자 정답으로 바뀌었습니다. 

int 와 long 둘 다 4바이트 아닌가요 ? 어떤 구체적 차이가 있길레 맞은건지 궁금합니다. 

djm03178   4년 전

long은 최소 int만큼의 크기를 가져야 하는 것이고, 무조건 4바이트인 건 아닙니다.

채점 환경에서는 실제로 int는 4바이트이고, long은 8바이트입니다.

kangsy763   4년 전

long이 무조건 4바이트인건 아니군요. 그렇다면 위 문제에서 int로 했을 시에 값을 벗어나기 때문에 오답처리가 되었다고 생각하면 되겠네요.. 그런데 -100,000 ~ 100,000 인데 벗어날 만한 값 아니지 않나요 ? 

djm03178   4년 전

입력을 %ld로 받으셨기 때문에 scanf나 printf나 입력을 받는 변수가 long형이라고 가정합니다. 그래서 long형의 크기, 채점 서버에서는 8바이트만큼을 쓰고, 8바이트만큼을 읽기 때문에 문제가 됩니다.

댓글을 작성하려면 로그인해야 합니다.