如何从控制台读取矩阵并打印所有矩阵元素的总和

时间:2019-05-20 17:27:38

标签: c# matrix multidimensional-array

我正在学习C#,现在我在多维数组上。我想编写一个从控制台读取矩阵并打印的程序:

  • 的数量
  • 的数量
  • 所有矩阵元素的总和

因此,在接下来的 [行] 行中,我将为每一列获取元素,并用逗号和空格分隔。我对总和做了一个foreach,但是我不明白如何将元素插入矩阵。如果您能帮助我,我将不胜感激!

int[] dimensions = Console.ReadLine()
.Split(", ", StringSplitOptions.RemoveEmptyEntries)
.Select(int.Parse)
.ToArray(); 

int rows = dimensions[0];
int columns = dimensions[1];

int[,] matrix = new int[rows,columns];

for (int i = 0; i < rows; i++)
{ 
    int[] numbers = Console.ReadLine()
        .Split(", ", StringSplitOptions.RemoveEmptyEntries)
        .Select(int.Parse)
        .ToArray();
//I do not know how to add the elements here
}

int sum = 0;
foreach (var element in matrix)
{
    sum += element;
}

2 个答案:

答案 0 :(得分:2)

您可以使用Linq Sum()计算所有行的总和

当您已经遍历输入数据的每一行时,可以分配一个称为sum =0的临时变量,并为每一行计算该行所有数字的总和,并将其添加到临时变量即{{1 }}。

sum

答案 1 :(得分:1)

使用两个索引访问二维数组中的元素:

for (int i = 0; i < rows; i++)
{ 
    int[] numbers = Console.ReadLine()
        .Split(", ", StringSplitOptions.RemoveEmptyEntries)
        .Select(int.Parse)
        .ToArray();

    for (int j = 0; j < columns; j++)
    {
        matrix[i,j]=numbers[j];
    }
}

int sum = 0;
for (int i = 0; i < rows; i++)
{ 
    for (int j = 0; j < columns; j++)
    {
        sum += matrix[i,j];
    }
}