안녕하세요. 조교 이은헌입니다.
작성하신 코드를 보면 int states[100]을 정의하셨습니다. 그런데 정의를 한 후에 states[100]에 아무런 값도 초기화해주지 않았지요.
그러면 states안에 0이 있을지, 1이 있을지, 아니면 183819같은 이상한 값이 들어가 있을지는 아무도 모릅니다. 변수를 작성하고 초기화를 해주지 않으면 예전에 사용한 변수값이 남아있게 되기 때문입니다.
나중에 states[s]!=0인지 물어보는데, state[s]값을 초기화해주지 않았기 때문에 코드가 완벽히 작성되었다할지라도 states의 값이 정해지지 않았기 때문에 문제를 일으킬 수 있는 것입니다.
반드시 변수를 선언하면 값을 초기화해주는 습관이 필요합니다.