C# 如何递归地填充二维数组?
我有一个填充了9个数字的字符串。我想用数字填充一个3x3数组。我已经设法使用foreach和2 for循环来实现它,但我觉得这相当混乱。如何修改代码以递归方式将值输入数组?这是我目前的代码:C# 如何递归地填充二维数组?,c#,arrays,recursion,C#,Arrays,Recursion,我有一个填充了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
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;
}
}
}
}
int[,]矩阵=新的int[3,3];
如果(键长<9 | |键长>9)
{
keyfield.GetComponent().text=“键无效”;
}
其他的
{
foreach(键中的字符c)
{
对于(int k=0;k<3;k++)
{
对于(int j=0;j<3;j++)
{
矩阵[j,k]=c-0;
}
}
}
}
请注意,我使用的是Unity。好吧,只需在
键中的字符上迭代,并将它们分配给数组,一次分配一个字段。只需计算正确的列和行:
for (int i = 0; i < 9; ++i)
{
int row = i / 3;
int col = i % 3;
matrix[row, col] = (int)key[i];
}
for(int i=0;i<9;++i)
{
int row=i/3;
int col=i%3;
矩阵[行,列]=(int)键[i];
}
还要注意的是,您的问题中的代码和我的答案中的代码都不是以递归方式解决问题的。递归是在方法直接或间接调用自身时给出的,这不是解决这个特定问题所必需的。好吧,只需迭代键中的字符
,并将它们分配给数组,每次一个字段。只需计算正确的列和行:
for (int i = 0; i < 9; ++i)
{
int row = i / 3;
int col = i % 3;
matrix[row, col] = (int)key[i];
}
for(int i=0;i<9;++i)
{
int row=i/3;
int col=i%3;
矩阵[行,列]=(int)键[i];
}
还要注意的是,您的问题中的代码和我的答案中的代码都不是以递归方式解决问题的。当一个方法直接或间接地调用它自己时,就会给出递归,这不是解决这个特定问题所必需的。如果这解决了你的问题,接受答案将是非常感激的:-)如果这解决了你的问题,接受答案将是非常感激的:-)