Только для массива генераторов опросов и циклов - PullRequest
0 голосов
/ 25 мая 2018

Мне нужно опросить пользователей для ввода результатов выборов и вывода победителя, используя только массивы и циклы.Мы еще не дошли до скорости с хэшами.

Вход: опрос 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

Но тогда я не знаю, как найти общее количество голосов для каждого кандидата?Любые предложения будут оценены.

1 Ответ

0 голосов
/ 26 мая 2018

Я не знаю, как хранятся кандидаты, но если я понял ваш вопрос, может быть, это поможет.

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}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...