[1] 授業単元:if文,while文,配列
[2] 問題文:
1H1Bを作りなさい。
(1)乱数を用いて答えとなる4桁の数字を決める。
(2)キーボードから4桁の数字を入力する。(4桁の数字以外を入力したらエラーを表示する)
(3)数字と場所が一致していたらH、数字のみ一致していたらBと判定する。
[例:答え1234 入力1324 判定2H2B, 答え1134 入力1111 判定2H2B]
(4)4H0Bになるまで入力と判定を繰り返し、4H0Bになったまでの回数を表示する。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] Visual Studio .NET
 [3.3] C
[4] 期限:今日の12:30
[5] printf,scanf,if,while,for,int,char,配列,乱数を発生させるプログラム(srand,rand,timeを用いたもの)

以下のようにしてみたのですが、
「答え1134 入力1111」のときに1桁目の1に対して1H3B、2桁目の1に対して1H3Bであわせて2H6Bと表示されてしまいます。
また(2)のエラーの表示ができません。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8146.c

よろしくお願いします。