작성
·
246
0
안녕하십니까 강사님 강의 듣고있는 수강생입니다.
알고리즘 문제풀기(Editor)강의에서 질문있어서 게시판에 글남깁니다.
저는 명령어를 입력하는단계에서 for문과 if문을 활용하였는데 첨부드린 사진처럼 for문의 반복횟수가 5번을때는 두번의 L명령어만 실행이됩니다.
for문의 반복횟수를 10회이상으로 늘렸을때는 답이 나오는데 무엇이 문제인지 모르겠습니다. fscanf함수를 활용하였는데도 개행문자를 읽는것 같기도 해서 한번 봐주시면 감사하겠습니다..
답변 1
0
입력 버퍼에 개행 문자가 들어가서 그렇습니다. (링크 참고)
https://snurf.tistory.com/entry/C%EC%96%B8%EC%96%B4-c%EB%9E%80
L \n
L \n
L이 2번 입력될 때 버퍼에 개행 문자 2번이 저장되서 아마 4번의 반복문이 실행될 겁니다.
명렁어 1개 + 개행문자 1개 사실상 명령어를 2번 실행하게 되는 셈이라고 보시면 됩니다.
10번일 때 동작하는 이유는 마찬가지로 명령어 5개 + 개행문자 5개 = 10개 이므로
10번 반복하면 답이 나오는 거죠.
fscanf에서 %*c를 추가해주세요.
fscanf("%c%*c", &ch);
이와 같이 바꾸면 아마 동작할 껍니다.
아 정확히 실행이 됩니다. 답변 감사합니다!!