对于这个程序,我已经要求用户输入数组大小,然后按时间顺序填充数字,直到数组已满。我想将此数组放入网格中。我想知道是否可以在某一点开始输入数组,比如它是数字1,2,3,4,5,6,7,8,9,10。我能否开始输入在像[0,2]这样的某个点上,所以基本上不使用第一个槽来制作网格;
[] [] [1] [2] [3]
[4] [5] [6] [7] [8]
[9] [10] [] [] []
我想知道我是否以及如何能够做到这一点 提前谢谢!
class Program
{
static void Main(string[] args)
{
int Height = 4;
int Width = 5;
int[,] grid = new int[Height, Width];
Console.Write("Input Number: ");
int number = int.Parse(Console.ReadLine());
int[] InputNumber = new int[number];
var randomNumbers = Enumerable.Range(1, number).ToArray();
/*
[0,0] [0,1] [0,2] [0,3] [0,4]
[1,0] [1,1] [1,2] [1,3] [1,4]
[2,0] [2,1] [2,2] [2,3] [2,4]
[3,0] [3,1] [3,2] [3,3] [3,4]*/
}
}
}
答案 0 :(得分:0)
您可以修改代码以包含单元格偏移量,如下所示
static void Main(string[] args)
{
int Height = 4;
int Width = 5;
int[,] grid = new int[Height, Width];
Console.Write("Start Number :");
int startnum = int.Parse(Console.ReadLine());
Console.Write("End Number :");
int endnum = int.Parse(Console.ReadLine());
Console.Write("input nmber of cells to be offset at max "+Width*Height+" :");
int cellofs = int.Parse(Console.ReadLine());
var myNumbers = Enumerable.Range(startnum, endnum).ToArray();
int t = 1;
for(int i=cellofs;i<Width*Height;i++)
{
int iline = i / Width;
int jcol = i % Width;
if (t <= (endnum - startnum))
{
grid[iline, jcol] = myNumbers[t];
t++;
}
}
for (int i = 0; i < Height; i++)
{
for (int j = 0; j < Width; j++)
{
Console.Write(grid[i, j]+" ");
}
Console.WriteLine();
}
Console.ReadKey();
}
希望这些帮助。