【问题标题】:how to print the row of a matrix(multi-dimensional array) in a new line如何在新行中打印矩阵(多维数组)的行
【发布时间】:2022-01-20 23:56:53
【问题描述】:

我在 C# 中有一个多维数组,我通过捕获来自用户的输入来分配矩阵的索引,我正在尝试实现一个条件结构,它可以让我在单独的矩阵上打印每个行行,例如,如果我的数组是 A 并且 A 的维度为 3 x 3,则代码在第一行打印前三个元素,在下一行打印接下来的三个元素,依此类推。我正在尝试实现这一点,因为它会更容易将结构理解为普通矩阵,并且还可以使用错误的操作构建整个矩阵类。

代码

class Matrix{
 static int[,] matrixA;
 static void Main(string[] args){
   Console.WriteLine("Enter the order of the matrix");
   int n = Int32.Parse(Console.ReadLine());
   matrixA = new int[n, n];
  //assigning the matrix with values from the user
   for(int i = 0; i < n; i++)
        {
            for(int j = 0; j < n; j++)
            {
                matrixA[i, j] = Int32.Parse(Console.ReadLine());
            }
        }
   //the code below tries to implement a line break after each row for the matrix
  for (int i = 0; i < n; i++)
        {
            for (int j = 0; j < n; j++)
            {
                
                if( (n-1-i) == 0)
                {
                    Console.Write("\n");
                }
                else
                {
                    Console.Write(matrixA[i, j].ToString() + " ");
                }
            }
        }
    }
}

我如何修改我的代码,以便如果数组有 9 个元素并且它是一个方阵,那么每个包含三个元素的行都打印在一行上。

【问题讨论】:

  • 就像你有一个嵌套的 for 循环来捕获输入一样,我会使用嵌套的 for 循环来产生输出。
  • @StayOnTarget,我遍历i 并检查当前行是否在那里结束并中断?
  • 与输入循环完全一样...有两个循环,每个循环都指向n
  • @StayOnTarget,立即试用
  • @StayOnTarget,我没有想法,它不起作用,它在同一行打印 4 个数字。如果为真,我使用if(n-1-i)==0 检查并打印换行符

标签: c# arrays matrix output


【解决方案1】:

我会使用这样的输出:

    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            
                Console.Write(matrixA[i, j].ToString() + " ");
        }

        Console.Write("\n");
    }

当内部循环完成时,这意味着一行已完全打印。所以这是唯一需要换行符的时候。 (n 外循环的传递 ==> n 打印换行符)。

【讨论】:

  • 是的,它会的,谢谢,只是为了清楚为什么在内部循环之外打印语句?
猜你喜欢
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
  • 2012-10-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-10
  • 2011-07-01
  • 1970-01-01
相关资源
最近更新 更多