【问题标题】:How to get sum of colums in a array in C#?如何在 C# 中获取数组中的列总和?
【发布时间】:2014-11-20 09:16:13
【问题描述】:

我试图做到这一点并且几乎得到它,但是当我求和时,它会将每一列加在一起。我的意思是第一个列是可以的,但接下来的列将前面的列加到总数中。我希望他们分开,就像每个人独立一样。帮助)))

    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();
    }
}

}

【问题讨论】:

  • totcol 如果您需要单独的列总和,也应该是一个列表
  • 您要寻找的确切结果是什么?我不太明白你要做什么。
  • 您要做的是分别获取每行的列数?
  • 我试图对列求和。我知道了,我只需要将总费用重置为 0。无论如何,谢谢您的关注
  • 如果一个答案对您有帮助,请接受它

标签: c# arrays multidimensional-array sum calculated-columns


【解决方案1】:

如果你想输出到控制台,除了你没有重置每列的总和之外,你正在做的事情很好:

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");
}

【讨论】:

    【解决方案2】:

    如果您的数组是固定大小的(每行的列号相同),那么您可以简单地使用

    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);
    
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-26
      • 1970-01-01
      • 1970-01-01
      • 2013-09-20
      • 1970-01-01
      • 2018-02-13
      • 1970-01-01
      • 2021-01-09
      相关资源
      最近更新 更多