如何在控制台中将 5x10 二维数组与随机数据正确对齐?

How to properly align a 5x10 2-d array with random data in console?

第一次发帖,但我整个季度都在使用 Whosebug 来帮助我介绍 C# class。一般来说,如果我足够努力,我可以找到我要找的东西,但我一直找不到任何人已经回答了我的问题。

我的作业要求我在 5x10 数组中显示随机数。 然后我需要计算数字的总和和平均值,但我稍后会担心。

随机数应 <0 且 <=100。控制台输出应该是这样的

x  x  x  x  x
x  x  x  x  x
x  x  x  x  x
x  x  x  x  x
x  x  x  x  x

只有 10 行而不是 5 行。

但是,我当前的代码是将随机数并排列出,并在到达行尾时换行,如下所示

x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x
x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x  x
x  x  x  x ...etc

我该怎么做才能使其正确对齐?我几乎已经用尽了使用格式修饰符的能力,所以当您看到 {0, 5} 时,这只是我最近的尝试,但远非我唯一的尝试。我对 C# 非常陌生,所以任何高级技术都是不可能的,因为我不明白如何正确使用它们。有什么想法 S.O.?!

using System;

namespace DilleyHW7
{
    class Array2d
    {
        static void Main()
        {
            const int ROWS = 10;
            const int COLS = 5;
            const int MAX = 100;
            int[,] numbers = new int[10, 5];

            Random rand = new Random();

            for (int i = 0 ; i< ROWS; ++i)
            {
                for (int j = 0; j < COLS; ++j)
                {
                    numbers[i, j] = rand.Next(0, 101);
                    Console.Write(" {0, 5}", numbers[i, j]);
                }
            }
        }
    }
}

希望这不会搞砸代码片段....我知道我可以做一些像这样的废话

int[,] numbers = { 
{random.Next(1,100), random.Next(0,100), random.Next(0,100), random.Next(0,100)}, 
{random.Next(1,100), random.Next(0,100), random.Next(0,100), random.Next(0,100)}, 
{random.Next(1,100), random.Next(0,100), random.Next(0,100), random.Next(0,100)}, 
{random.Next(1,100), random.Next(0,100), random.Next(0,100), random.Next(0,100)}, 
{random.Next(1,100), random.Next(0,100), random.Next(0,100), random.Next(0,100)} 
}; 

但是那会让我在作业中得到很差的分数。

您可以使用 Console.WriteLine(),它会在输入的末尾插入一个行终止符。

您也可以使用 Environment.EndLine 属性 来插入适当的行尾字符。

所以你的循环看起来像:

for (int j = 0; j < COLS; ++j)
{
    numbers[i, j] = rand.Next(0, 101);
    Console.Write(" {0, 5}", numbers[i, j]);
}
Console.WriteLine(Environment.EndLine);
static void Main()
{
    const int ROWS = 10;
    const int COLS = 5;
    const int MAX = 100;
    int[,] numbers = new int[10, 5];

    Random rand = new Random();

    for (int i = 0 ; i< ROWS; ++i)
    {
        for (int j = 0; j < COLS; ++j)
        {
            numbers[i, j] = rand.Next(0, 101);
            Console.Write(" {0, 5}", numbers[i, j]);
        }
        Console.WriteLine("");
    }
}