printf("\n終了します。よろしいですか?\n");

for( ; ; ) {
if(kbhit()) {
printf("\n終了しました。\n");
break;
}
}
scanf("%d", &num);
return(0);
}

1:数字(公差)を入力して等差数列を表示
2:等比数列出力メッセージを表示。(キー入力待ち)
3:キー入力後、等比数列表示。
4:終了確認メッセージを表示。(キー入力待ち)
5:キー入力後、終了メッセージ表示。

としたいんですが、2番目のキー入力待ちでキーボードからキーを1回押すと、
一気に最後までいってしまいます。4番のキー入力待ちのところでとまってくれません。
どうしてでしょうか?(kbhit()の使い方が間違ってます?)