scanfの挙動はよう分からんからなあ……
とりあえず、while(scanf("%d",&x))...みたいな書き方だと条件満たさないと思うよ
%dは数字以外の文字をひたすら無視するから

というかC#知らないけど、
scanfとかでいいのか?