我有一个问题 - 当我尝试声明在0行有0值的三维数组时,其他值方法会打印出与预期不同的数字。
应该是:
0 0 0 0 0 0 0 0 0 0 0
8 8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8 8
但程序打印:
8 8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8 8
8 8 8 8 8 8 8 8 8 8 8
以下是代码:
//soldiers: 4 food: 10 fun: 8
printx(makeTable(soldiers, food, fun), soldiers, food);
// ...
static public int[ , , ] makeTable(int soldiers, int food, int fun)
{
int[,,] table = new int[soldiers+1, food+1, fun+1];
for (int i = 1; i <= soldiers; i++)
{
for (int j = 0; j <= food; j++)
{
table[i, j, 0] = 8;
}
}
return table;
}
static public void printx(int[,,] input, int a, int b)
{
for (int i = 0; i <= a; i++)
{
Console.WriteLine(' ');
for (int j = 0; j <= b; j++)
{
Console.Write("{0} ", input[a, b, 0]);
}
}
}
我只想在没有第三维的情况下打印它。输入值[0,0,0]为0,因此写入方法有问题。