구코드가 왜 틀렸는지 모르겠습니다.
#include<stdio.h>
int main()
{
char a[10000];
char b[10000];
int i=1;
int max=0;
while(a[i] != EOF)
{
i++;
while((a[i]=getchar())!='\n')
{
if(a[i] == EOF)
break;
i++;
}
if(a[i]=='\n') {
if(max<i-1)
{
max=i-1;
for(i=1; i<=max; i++)
b[i]=a[i];
}
i=0;
}
}
printf("%d\n" ,max);
for(i=1; i<=max; i++)
{
printf("%c" ,b[i]);
}
return 0;
}
안녕하세요. 조교 이은헌입니다.
윗 분이 말씀하신대로 i=2로 시작해서 첫 문장을 잘못 해석하는 부분도 잘못되었지만, 다른 문제도 존재합니다.
입력값의 마지막 줄은 \n이 아니라 EOF로 끝나게 됩니다. 그러나 제출하신 코드를 살펴보면 \n을 받을 때에만 max값을 계산하는 작업을 수행하게 됩니다.
즉 마지막줄이 가장 긴 라인인 경우에는 제대로 된 값을 출력할 수 없겠죠?