>>840>>871
ごめん。間違えた。
charsort()の3つめのアドバイスは必要ない。
替わりに、
else if(i==j){charsort(a,n0,i-1);charsort(a,i+1,nn);}
else{charsort(a,n0,j);charsort(a,i,nn);}
のそれぞれの{}括弧の中の最後にbreak;を追加するのが正解だった。