해결된 질문
작성
·
593
0
안녕하세요 큰돌님. 강의를 듣고 있는 수강생입니다.
현재 큰돌님 코드에서 while(scanf("%d", &n) != EOF)라는 코드를 작성하셨는데 EOF를 생략하고 cin >> n의 형식으로 작성을 하니 틀렸다고 뜹니다. 이에 EOF를 왜 사용하지 않으면 틀리는지 궁급합니다.
다음은 코드입니다.
http://boj.kr/6b818f7ca5394a209864fb4063aa8811
답변 1
0
안녕하세요 67님 ㅎㅎ
혹시 코드 잘못 올리신 거 아니신가요?
공유하신 코드는 다음과 같습니다.
int c, r=1;
int cnt =1;
int main()
{
cin >> c;
while(r % c !=0)
확인 부탁드립니다.
이 문제는 입력이 무한히 주어지는 코드입니다.
따라서
cin >> c;
while(r % c !=0)
이렇게 하게 되면 해당 부분을 충족시키지 못합니다.
이부분은 r과 c의 모듈러한 값이 0 일 때 이부분을 종료시키는 코드니까요.
교안내의 다음 부분을 참고 부탁드립니다.
Q. 문제에서 입력의 끝을 정하지 않은 경우
코드를 잘못 올린거 같습니다. 그리고 찾아본 결과 cin 형식으로 EOF를 처리하는 방식이 있었습니다. 이에 코드를 수정하니 정답 처리가 되었습니다. 이에 EOF를 왜 사용하지 않으면 틀리는지 궁급합니다.
다음은 틀린 코드 입니다.
http://boj.kr/54b631ff10854a26aed8665a89034ab7
그리고 이건 수정하여 정답 처리 된 코드입니다.
http://boj.kr/e78ddcc0976e40199c28166fe61fffab