어디가 틀린지 모르겠습니다

Bbom Reply 7 years 35 weeks ago
짜보았는데 도대체 어디가 틀린지 모르겠습니다ㅠㅠ 인풋 부분을 뭔가 잘못한 것 같다는 느낌은 드는데 정작 어디가 틀렸고 어떻게 고쳐야할지 감도 오지 않습니다ㅠㅠ #include <stdio.h> #define IN 1 #define OUT 0 int main() { int c, nw, nt, nl, state; state = OUT; nw = nt = nl = 0; while ((c = getchar()) != EOF) { if (c == '\t') ++nt; if (c == '\n') ++nl; if (c == ' ' || c == '\n' || c == '\t') state = OUT; else if (state == OUT) { state = IN; ++nw; } } printf("%d\n%d\n%d\n", nw, nt, nl); }
mrk6319 Reply 7 years 35 weeks ago
tab 혹은 newline 이후에 문자가 입력되면 공백의 개수도 올라가네요 그리고 공백이후에 문자가 들어오지 않으면 카운트가 안되는거 같습니다.
withcs1 Reply 7 years 35 weeks ago
공백은 왜 state를 사용해서 증가시키나요?