>>360
うまく動かないのは39-40行が変だからじゃないかな
weakを間違えた回数が一番多かった文字にするなら、最初にweak=0;として
if(miss[i]>miss[weak]){ weak = i; }
にすればいいんじゃない