>>105
一行ずつ gets じゃなく、一気に全部読んでいいなら

n = ARGF.read.scan(/米\n*俵/).size

とか。(printfの行が必要だったら、これじゃダメだけど)

複数項目だと↓こんな感じか?

kome_dawara = 0
hanbai = 0
ARGF.read.scan(/(?:(米\n*俵)|(販\n*売))/) do
if $1
kome_dawara += 1
elsif $2
hanbai += 1
end
end
printf "米俵: %d, 販売: %d\n", kome_dawara, hanbai