>>20
2回目以降"scanf("%d",&tokuten);"に来たときのtokutenの値って
前回入力された値が入っているじゃないですか

たぶん…
そこでEnterキーだけ押したら前の値が入力されるかも?

・・・と思ったけど"%d"によってそうはならないみたいでした
なので一応>>16の後半は無視かも

ただ、(追求してみないと原因は判ってないけど)
適切な数値を入力→無効な文字(英字の文字列とか)
とするとループになってしまうようですけど
ここが対処できてしまったりするのは
宿題の答えとしては理解でき過ぎになるかも