2016-06-14 18 views
1

どのようにしてその入力の前後の整数を数えることができますか?配列とソートによるRubyのトラブル

user_array = user_input.chars.to_a 

user_array.map {|item| item.to_i} 
num = gets.to_i 

arrange_array = user_array.push(num).join(",") 
#need to give number before, and number after input 
+0

あなたは何のトラブルがありますか?あなたの質問は何ですか? – Leito

+0

'array = gets.split.map(&:to_i)'のようにして最初の配列を取得し、必要な要素を 'select'で選択することができます。 –

+1

あなたの承諾した回答を含む既存の回答には、この**あなたの質問の改訂**で提供したコードが使用されます。あなたの質問の内容を破壊しないでください。新しい質問がある場合は、**新しい質問**として投稿する必要があります。あなたが質問をすることでレート制限を打つなら、あなたは待たなければならないでしょう。この質問の内容を実質的に変更しないでください。 – meagar

答えて

2
puts "Please enter some numbers:" 
user_input = gets.chomp 

puts "Please enter another number:" 
num = gets.to_i 

user_input.split('') 
      .map(&:to_i)    # convert them to integers 
      .partition { |n| n < num } # split/partition by cond 
      .map(&:sort)    # sort results 
#⇒ [[0, 1, 2], [4, 5]] 

この溶液のコアが設けられた条件によってアレイを分割Enumerable#partition方法です。

1
#ENTER ARRAY OF NUMBERS 
puts "Please enter some numbers: " 
user_input = gets.chomp 

user_array = user_input.chars.to_a 

user_array.map! {|item| item.to_i} 
# important to ad the ! to the map method 

#ENTER NUMBER 
puts "Please enter another number: " 
num = gets.to_i 

user_array << num 
user_array.sort! 
amount_before = user_array.index(num) 
amount_after = user_array.count - user_array.index(num) - 1 

puts "There are #{amount_before} integers before #{num}, and #{amount_after} integers after #{num}"