前提・実現したいこと
私はプログラミングの勉強をしており問題を解いています。
現在はRubyでファイルを読み取り、血液型の項目の人数をカウントした後に昇順に順位付けをするという問題を行っています。
現在はここまで進め、人数のカウントとその人数を昇順にソートすることは出来てます。
しかし最後の順位を出す部分で詰まってしまいました。
現在は仮で順位の部分をi=1でおいていますが、この部分を増えるようにしたいです。
ーメッセージ
### gets atype = 0 btype = 0 otype = 0 abtype = 0 Blood = {'A' => 0, 'B' => 0, 'O' => 0, 'AB' => 0,} while line = gets line.chomp! line_array = line.split(',') if(line_array[12] == 'A') atype += 1 elsif(line_array[12] == 'B') btype += 1 elsif(line_array[12] == 'O') otype += 1 else(line_array[12] == 'AB') abtype += 1 end end b = {"A" => atype,"B" => btype,"O" => otype,"AB" => abtype} c = b.sort{|a,b|b[1]<=>a[1]} c.each do |a, b| i = 1 puts "#{i}位: #{a} #{b}人" end ```ここに言語名を入力 Ruby
試したこと
each_with_indexを使えば出来るのですが、その場合の出力結果はbのkeyとvalueを[]で囲んだ形で出力されてしまいました。
どうにか[]がつかない方法、もしくはeachのままで順位部分のiを増やす方法を知りたいです。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/03 08:57