Как я могу вернуть массив массивов с пользовательским вводом? - PullRequest
0 голосов
/ 08 мая 2019

код ниже будет помещать имена в группы (например, первый человек входит в первую группу, второй человек входит во вторую группу и т. Д.).

Я хотел бы ввести последний фрагмент кода и попросить пользователя ввести номер группы.Затем следует напечатать людей в этой группе, каждый из которых разделен запятой и пробелом.Номера групп являются «1-индексированными».Это означает, что, если пользователь вводит 1, должна быть напечатана первая группа, а не вторая.Продолжайте запрашивать у пользователя (окончательные) номера групп, пока пользователь не введет stop.

puts "How many groups would you like?"
group_num = gets.chomp.to_i

array = Array.new(group_num) { [] }

puts "Enter one name at a time"
count = 0
 while input_name = gets.chomp
  if input_name == "stop"
    break
  else puts "Give me a name"
   array[count] << input_name
   count += 1
   count = 0 if count == group_num
  end
 end

array.inspect

Таким образом, если array = [["John", "Steve"], ["Judy", Pete"]] и запрашиваемый номер группы равен 2, вывод должен вывести: "Judy, Pete" (в той же строке).

Ответы [ 2 ]

1 голос
/ 08 мая 2019

Учитывая массив и требуемый индекс очень просто

array = [["John", "Steve"], ["Judy", "Pete"]]
puts "tell me which group you want with a number"
number = gets.to_i
if (1..array.length).include?(number)
  puts "people: #{array[number - 1].join(", ")}"
else
  puts "Number element not present"
end
0 голосов
/ 08 мая 2019

Я думаю, это то, что вы хотите, чтобы ваша программа делала?Попробуйте запустить его:

array = []
puts "How many groups would you like?"
group_num = gets.chomp.to_i

group_num.times do
  puts "\nEnter one name at a time"
  a = []
  loop do
    puts "Give me a name or 'stop' to stop adding names"
    input_name = gets.chomp
    break if input_name == "stop"
    a << input_name
  end
  array << a
end

array.each_with_index{|a, i| puts "#{i+1}. #{a}" }
puts "select number which group you want"
group = gets.chomp.to_i - 1
puts "you selected group: #{array[group].to_s}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...