如何在 C# 中获取数组中的列和
本文关键字:数组 获取 | 更新日期: 2023-09-27 18:31:03
我试图做到这一点,几乎得到了它,但是当我求和时,它会将每一列相加。我的意思是第一个列是可以的,但下一个列将前一列添加到总数中。我希望他们分开,就像每个人都独立一样。帮助
))) int[,] vektor;
vektor = new int[2, 5];
vektor[0, 0] = 8;
vektor[0, 1] = 9;
vektor[0, 2] = 1;
vektor[0, 3] = 5;
vektor[0, 4] = 6;
vektor[1, 0] = 5;
vektor[1, 1] = 3;
vektor[1, 2] = 2;
vektor[1, 3] = 11;
vektor[1, 4] = 10;
int row;
int col;
int totrow = 0;
int totcol = 0;
double media = 0.00;
int j = 0;
for (row = 0; row < vektor.GetLength(0); row++)
{
for (col = 0; col < vektor.GetLength(1); col++)
{
Console.Write(vektor[row, col] + "'t");
totrow += vektor[row, col];
}
Console.WriteLine(totrow);
}
Console.WriteLine();
for (col = 0; col < vektor.GetLength(1); col++)
{
for (row = 0; row < vektor.GetLength(0); row++)
{
totcol += vektor[row, col];
}
Console.Write(totcol + "'t");
}
Console.ReadKey();
}
}
}
如果要
输出到控制台,除了不重置每列的总和之外,您正在执行的操作很好:
for (col = 0; col < vektor.GetLength(1); col++)
{
totcol = 0; // <--- reset the sum to 0.
for (row = 0; row < vektor.GetLength(0); row++)
{
totcol += vektor[row, col];
}
Console.Write(totcol + "'t");
}
如果您的数组将是固定大小(每行的列号相同),那么您可以简单地使用
vektor.GetLength(1)/vektor.GetLength(0)
此除法将为您提供每行中的列数。如果您拥有的是每行中的列数不同,请使用数组而不是总计数器来存储列数。每次更改行时,都会更改数组中的位置。
int totcol[vektor.GetLength(0)];
for (row= 0; col < vektor.GetLength(0); col++)
{
for (col= 0; row < vektor.GetLength(1); row++)
{
totcol[row= += vektor[row, col];
}
此外,totcol 需要归零才能使计算正确。
另一方面,如果您需要简单地打印每行中的列数,则不需要数组,而只需在每次列计数迭代后将totcol
归零即可。这样:
for (row= 0; col < vektor.GetLength(0); col++)
{
totcol=0;
for (col= 0; row < vektor.GetLength(1); row++)
{
Console.WriteLine(totcol);
}