자주하는 실수 중 하나이지요.
scanf("%d",&n); gets(a);
얼핏보면 아무런 문제가 없어보이는 코드입니다. 허나 커서의 위치?를 생각해보면 문제가 생기는걸 알 수 있는데요...
데이터가
5\n
10 10\n
이렇게 들어왔다고 칩시다.
그럼 |을 커서의 위치라고 쳤을 때, 초기 상태는
|5\n
이고 scanf("%d",&n);을 통해 5를 읽고나면 커서의 위치는
5|\n
이렇게 됩니다. 이 상태에서 gets(a);를 하게되면
a에는 "10 10" 이 아닌 ""이 저장되는거죠...왜냐? \n이 나올때까지 읽는건데 커서 바로뒤에 \n이 반겨주고있네요ㅋㅋㅋ
scanf("%d\n",&n); 이렇게 해결하거나 scanf("%c")등을 써서 \n을 제거해주셔야합니다.