output이 같은데 왜 틀린지 모르겠습니다.

YooJaeHyo Reply 9 years 34 weeks ago
#include <stdio.h> int main() { int c,z=0,i=0,s=0,zs,n[10000]; while((c=getchar())!=EOF){ if(c!='\n'){n[z]=c;++i;++z;} if(c=='\n'){ if(i>s){ zs=z; s=i; i=0; } else i=0; } } printf("%d\n",s); for(c=zs-s;c<zs;++c) putchar(n[c]); return 0; } 친구에게 듣기론 EOF가 엔터를 치고 입력하는것이아닌 문장을끝내자마자 입력했을떄도 되야한다고 들었는데 그건 코드블록에서 인식이 안되더군요.. 이 문제를 해결하려면 어찌해야하는지 듣고싶어서 문자드립니다.
booksky Reply 9 years 34 weeks ago
안녕하세요. 조교 이은헌입니다. 학생께서 이야기한대로 마지막줄은 '\n'으로 끝나지 않고 EOF로 끝나기 때문에 EOF로 끝날 경우에도 계산을 해줘야합니다. 이 조건을 추가해주면 됩니다. 코드블럭상에서는 안타깝게 윈도우 커널창의 문제로 확인할 수 없지만 조건을 추가하면 성공할 수 있을 것입니다.