填充二维数组
本文关键字:二维数组 填充 | 更新日期: 2023-09-27 17:59:24
我正在尝试编写一些逻辑,它允许我将值存储到二维数组中。在下面的函数中,我想存储当前的coins[i]
值,并将相应的coin
变量作为一对。然而,我不太确定如何才能做到这一点。原因是,一旦数组被填充,我想循环遍历它,并打印出当前的coins[i]
值以及相应的coin
变量,该变量指示用于分配零钱的次数。
功能:
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类中的任何内容。感谢所有的回答。
由于讨论可能有点难以理解,下面的代码是您想要的吗?
// 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]);
}
您可以通过使用具有硬币的二维数组来实现这一点。Length表示数组的长度,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];
}
如上所述,二维数组可以由定义
int[,] array = new int[4, 2];
并由访问
array[i][j] = SomeValue;
事实上,它的处理方式与注释掉的代码相同。