При печати массивов с переменными выводятся отдельные ответы, а не все - PullRequest
0 голосов
/ 04 ноября 2018

Это программа для сохранения возраста и фамилии человека:

E = Array.new(10)
A = Array.new(10)
for i in(0..9)
  puts "¿Cúal es tu edad?"
  edad = gets.chomp
  E[i] = edad
  puts "¿Cúal es tu apellido?"
  apellido = gets.chomp
  A[i] = apellido
end
 gets
for m in(0..9)
  puts "Apellido es " + A.to_s + " tengo " + E.to_s + " años. "
end
gets

Он печатает:

Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.
Apellido es ["primero", "segundo", "tercero", "cuarto", "quinto", "sexto", "septimo", "octavo", "noveno", "decimo"] tengo ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"] años.

Когда я ввожу 10 и 10 переменных и печатаю их, он печатает всю информацию, а не 1 и 1. Он создает их все одновременно.

1 Ответ

0 голосов
/ 04 ноября 2018

Вы должны изменить одну из своих строк на, чтобы вы могли получить доступ к элементам массива по индексу (но не используйте заглавные буквы для имен переменных):

puts "Apellido es " + A[m].to_s + " tengo " + E[m].to_s + " años. "

Но я предлагаю сделать ваш код более "рубиновым", вот так:

people = Array.new() # initializa an array
10.times do |n|
  person = {} # initialize a hash
  # puts "¿Cúal es tu edad?"
  person[:edad] = 20 + n # stores into the hash, here use gets for user input instead of 20 + n
  # puts "¿Cúal es tu apellido?"
  person[:apellido] = 'Pedro' + n.to_s # stores into the hash, here use gets for user input instead of 'Pedro' + n.to_s
  people << person # insert the person into people
end
people.each do |person|
  puts "Apellido es #{person[:apellido]} tengo #{person[:edad]} años." # string interpolation
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...