あー改行文字を残す問題はありましたね、失念してました
わざわざ有難うございました

scanf("%d", &d);
getchar();

と常にしておかないと不味いですよね
併用しなければならない分scanfはやっぱり良くないと…

そういえばfgetsを使用した場合指定したサイズより多い数を入力した場合で
入力ストリームをクリアする標準的な方法と言うのを知らないのですが
while(getchar() != '\n');
で良いのですかね?