我需要轮询用户选举输入并仅使用数组和循环输出获胜者。我们还没有达到哈希的速度。
输入:投票10人投票。 输出:打印总投票数以及选举获胜者和领带破坏者。
Example:
Election candidates are: Tom, James, Anne
Vote #1: <Anne>
Vote #2: <Anne>
Vote #3: <James>
Vote #4: <Tom>
Vote #5: <Tom>
Vote #6: <Anne>
Vote #7: <Anne>
Vote #8: <James>
Vote #9: <James>
Vote #10: <Anne>
RESULTS....
Vote Summary:
Anne - 5 vote(s)
James - 3 vote(s)
Tom - 2 vote(s)
WINNER: Anne!
我正在考虑使用times方法用候选者的用户输入填充所有投票,并使用数组来存储候选人。
candidates = "Iron Man", "Wonder Women", "Storm"
puts "Our Election Candidates this year are: #{candidates}"
10.times do |i|
print "Vote #{i+1}"
vote[i] = gets.chomp.upcase.to_i
end
但是,我不知道如何找到每位候选人的总票数?任何建议将不胜感激。
答案 0 :(得分:0)
我不知道候选人是如何存储的,但如果我理解了你的问题,也许这会有所帮助。
candidates = [["Tom", 0], ["James", 0], ["Anne", 0]]
def update_votes(candidates, index)
candidates[index][1] += 1
end
10.times do
puts "Vote your candidate:"
candidates.each_with_index {|c, i| puts "#{i}-#{c[0]}"}
index = gets.to_i
update_votes(candidates, index)
end
p results = candidates.sort_by{|_name, votes| -votes}