>>825
scanf()で%cを使うと、Sに続いて入力した改行文字を拾わないで放置してしまうのです。
その文字が、次のscanf()で拾ってしまうので、1行余計になってしまうのです。
取り敢えずscanf()の後にgetchar()を入れておけば巧くいくことでしょう。

但し、実用的には余りいい解決法ではありませんが。