填充二维数组

时间:2014-04-22 11:36:16

标签: c# arrays

我正在尝试编写一些允许我将值存储到二维数组中的逻辑。在下面的函数中,我想存储当前的coins[i]值,并将相应的coin变量作为一对。但是,我不确定如何才能做到这一点。原因是我想在填充后循环遍历数组并打印出当前coins[i]值以及相应的coin变量,该变量指示用于分配更改的次数。 / p>

功能:

int counter = 0;
int coin;
for (int i = 0; i < coins.Length; i++)
{
    coin = Math.Min(quantities[i], (int)(change / coins[i]));
    counter += coin;
    change -= coin * coins[i];
    // want to store [coins[i], coin] in an 2Darray
}
Console.WriteLine("Number of coins = {0}", counter);

如果还有其他方法可以做到这一点,请务必提供建议。请记住,我不能使用Collection类中的任何内容。感谢所有答案。

3 个答案:

答案 0 :(得分:1)

由于讨论可能有点难以理解 - 下面的代码是你想要的吗?

// suppose the definition of array 'coins' is somewhere else

int counter = 0;
int coin;

int[] change_given = new int[coins.Length]; // will be the same length as 'coins'

for (int i = 0; i < coins.Length; i++)
{
    coin = Math.Min(quantities[i], (int)(change / coins[i]));
    counter += coin;
    change -= coin * coins[i];
    // want to store [coins[i], coin] in an 2Darray
    change_given[i] = coin;
}

for (int j = 0; j < change_given.Length; j++)
{
     Console.WriteLine("Number of coins of type {0} returned: {1}", j, change_given[j]);
}

答案 1 :(得分:0)

你可以使用一个有硬币的二维数组来做到这一点。长度为长度,2为数组宽度。

int[,] x = new int[coins.Length, 2];
for (int i = 0; i < coins.Length; i++)
{
        ... your code    
        x[i, 0] = coin;
        x[i, 1] = coins[i];
}

答案 2 :(得分:0)

here所述,二维数组可以由例如

定义
int[,] array = new int[4, 2];

并通过

访问
array[i][j] = SomeValue;

实际上它的解决方式与注释掉的代码相同。