演算子の優先順位とか

ビット演算と比較を一緒にすると、比較が先に行われてしまうので括弧で括るのに2B増えてしまう。
なんとか括弧を取りたいんだけどなあ。
優先順位とか結合規則とかもっとよく知る必要があると思った。
あ、全部ビット演算でやればいいのか!

show the way

変数cにstrrchrを動かした時に計算した結果を入れておくようにした。
変数cはループ初回では使われないので都合もいい。
おかげで出力時の判定の部分が削れて3B縮んだ。現在124B。
もっと工夫すれば縮むのかな。

c, j;

main(i, m)
{
  for(read(0, &m, 111); j <= (m & 15); j++ && puts(c > 0 ? c > 9 ? "top" : "left" : c < - 9 ? "bottom" : "right"), c = i)
    c -= i = strrchr(&m, j + 48);
}