在2d数组中迭代?

时间:2014-02-17 02:21:05

标签: arrays ruby input

我在迭代二维数组时遇到了麻烦。我想简单地为这个数组中的每个索引设置一个起始值0.我可以创建表,但现在我想设置初始值。

输入格式如下:   R5C4 + 2。 (这读作一个包含5行和4列的表,表中的所有值都是2)。

初始表:

0 0 0 0 
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0

输入后:

2 2 2 2 
2 2 2 2 
2 2 2 2 
2 2 2 2 
2 2 2 2 

Probem我甚至无法设置初始值为0的所有表索引,更不用说更新每个值了。

到目前为止我的代码:

row = []
sign = ''
val = ''

x.chars.each_slice(2) do |u|
  case u[0]
    when 'R' then
      row << u[1]
    when 'C' then
      col << u[1]
    when '+', '-'
      sign, val = u[0], u[1]
    else
      puts 'Invalid input.'
    exit
  end
end

p col
p row
puts sign, val

big_row = row.max.to_i
big_col = col.max.to_i

table = Array.new (big_row) { Array.new(big_col) }

require 'narray'
table = NArray[big_row][big_col]

table.each do |(x,y)|
  x = 0
  y = 0
  puts x,y
end

1 个答案:

答案 0 :(得分:0)

table = Array.new (row) { Array.new(col,2) }

其中2是您的初始值。