You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改C#代码实现二维int数组的列元素求和?

解决二维数组列求和的问题

你的原代码逻辑是计算每行的和,还存在索引越界风险(当行数大于列数时,output[i]会超出数组长度)。要改成列求和,只需要调整循环顺序和累加目标即可:

修改思路

  • 外层循环遍历列索引(j),逐个处理每一列的求和
  • 内层循环遍历行索引(i),把当前列j对应的每一行元素累加到output[j]中
  • 无需额外的sum变量,直接用output数组的元素承接累加值更简洁

修改后的完整代码

static void Main(string[] args)
{
    int[,] a = {{ 1, 2, 3, 4},
                { 1, 2, 3, 4},
                { 1, 2, 3, 4} };

    int[] b = SumColumn(a);
    // 可在此打印结果验证:b[0]=3,b[1]=6,b[2]=9,b[3]=12
}

public static int[] SumColumn(int[,] a)
{
    int[] output = new int[a.GetLength(1)];
      
    // 外层循环遍历所有列
    for (int j = 0; j < a.GetLength(1); j++)
    {
        // 内层循环遍历当前列的所有行,累加元素
        for (int i = 0; i < a.GetLength(0); i++)
        {
            output[j] += a[i, j];
        }
    }
    return output;
}

代码说明

  • a.GetLength(0)获取数组行数,a.GetLength(1)获取列数,output长度等于列数,对应每一列的求和结果
  • 外层循环j处理第j列,内层循环i遍历所有行,将a[i,j](第i行第j列的元素)累加到output[j]中
  • 最终output数组的每个元素就是对应列的总和,完全匹配你需要的1+1+1、2+2+2这类计算逻辑

内容的提问来源于stack exchange,提问作者FarneseC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 14:45:59