Ruby程序创建接受整数的奇偶方法
我需要帮助来编写接受整数数组的奇偶方法Ruby程序创建接受整数的奇偶方法,ruby,Ruby,我需要帮助来编写接受整数数组的奇偶方法 它应该返回一个包含2个数组的数组 第一个嵌套数组应仅包含奇数 第二个嵌套数组应仅包含偶数 如果没有偶数或奇数,则相应的内部数组应为空 输出应如下所示:- even_odd([3, 5, 8, 2, 4, 6]) [[3, 5], [2, 4, 6, 8]] even_odd([3, 5]) [[3, 5], []] even_odd([2, 4]) [[], [2, 4]] 我是ruby编程新手,我尝试了以下方法,但没有得到结果:-
even_odd([3, 5, 8, 2, 4, 6])
[[3, 5], [2, 4, 6, 8]]
even_odd([3, 5])
[[3, 5], []]
even_odd([2, 4])
[[], [2, 4]]
我是ruby编程新手,我尝试了以下方法,但没有得到结果:-
def even_odd(numbers)
arr1, arr2 = []
idx = 0
while idx < numbers.length
if numbers[idx] % 2 == 0
puts arr1[idx]
elsif
puts arr2[idx]
end
idx += 1
end
end
puts even_odd([2, 3, 6])
def奇偶(数字)
arr1,arr2=[]
idx=0
而idx
错误:-
main.rb:6:in `even_odd': undefined method `[]' for nil:NilClass (NoMethodError)
from main.rb:13:in `<main>'
main.rb:6:in'偶数\奇数:nil:NilClass(NoMethodError)的未定义方法“[]”
从main.rb:13:in`'
puts
是ruby中的打印语句,而不是追加语句。它也不运行函数/方法。您还需要调用if…else块内的numbers数组上的索引
这应该可以做到:
def even_odd(numbers)
arr1, arr2 = [], []
idx = 0
while idx < numbers.length
if numbers[idx] % 2 == 0
arr1 << numbers[idx]
elsif
arr2 << numbers[idx]
end
idx += 1
end
return arr1, arr2
end
arrays = even_odd([2, 3, 6])
puts arrays
def奇偶(数字)
arr1,arr2=[],[]
idx=0
而idx
def even_odd(numbers)
numbers.sort.partition(&:odd?)
end
even_odd([3, 5, 8, 2, 4, 6])
# => [[3, 5], [2, 4, 6, 8]]
even_odd([3, 5])
# => [[3, 5], []]
even_odd([2, 4])
# => [[], [2, 4]]
“未得到结果”不是一个足够精确的错误描述,我们无法帮助您。什么不起作用?它怎么不起作用?你的代码有什么问题?你收到错误信息了吗?错误消息是什么?你得到的结果不是你期望的结果吗?你期望得到什么样的结果?为什么?你会得到什么样的结果?两者有什么不同?你观察到的行为是否不是期望的行为?期望的行为是什么?为什么?观察到的行为是什么?它们有什么不同@阿维德:为什么要重新发明轮子<代码>数字。分区(&:奇数?
将完全满足您的要求。@JörgWMittag-很抱歉,我忘记添加错误。让我添加它。或者更简单:numbers.partition(&:odd?)\#=>[[3,5],[8,2,4,6]
但在修复代码方面做得很好,没有完全重写代码。感谢@SergioTulentsevThis提供的帮助。最简单的方法。实际上,我还没有研究分区对象。无论如何谢谢