如何递归填充2D数组?

阿迪丝(Adithya Fathom)

我有一个用9个数字填充的字符串。我想用数字填充3x3数组。我已经设法使用foreach和2 for循环来做到这一点,但是我觉得这很混乱。如何修改代码以将值递归地输入到数组中?这是我目前的代码:

int[,] matrix = new int[3, 3];

if(key.Length < 9 || key.Length > 9)
{
    keyfield.GetComponent<InputField>().text = " Key Not Valid";
}
else
{        
    foreach(char c in key)
    {
        for (int k = 0; k < 3; k++)
        {
            for (int j = 0; j < 3; j++)
            {
                matrix[j, k] = c - 0;
            }
        }
    }
}

注意,我正在使用Unity。

托马斯·希尔伯特

好吧,只需遍历charskey并将它们分配给数组,一次分配一个字段。只需计算正确的列和行即可:

for (int i = 0; i < 9; ++i)
{
    int row = i / 3;
    int col = i % 3;
    matrix[row, col] = (int)key[i];
}

还要注意,您问题中的代码或我答案中的代码都无法以递归的方式解决问题。当方法直接或间接调用自身时,将给出递归,这对于解决此特定问题不是必需的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章