C#如何使用for循环对二维矩阵中的指定选中元素进行求和
解决方案
现有代码问题修正
你的代码存在几个基础错误需要先调整:
- 变量名不统一:
summing方法里声明的求和变量是sum,但累加时用了未定义的toplam,Main方法中输出的toplam也没有提前声明 - 存在不可达代码:
summing方法中return sum之后的Console.ReadKey()永远不会被执行 - 语法小瑕疵:矩阵第四行末尾多了一个多余的逗号
指定元素求和实现思路
你可以给求和方法增加参数,自定义要选中的元素范围。以你需求的「第二列(1开始计数,对应数组索引为1)的3、3、5三个元素求和」为例,这三个元素分别对应行索引1、2、3的第一索引列,我们可以给方法增加targetColumn(目标列索引)、startRow(起始行索引,包含)、endRow(结束行索引,包含)三个参数,仅遍历符合范围的元素累加即可。
完整可运行代码
using System; namespace debugginglab { class Program { static void Main(string[] args) { int[,] matrix = { { 5, 4, 3, 2, 1 }, { 1, 3, 4, 6, 5 }, { 6, 3, 2, 1, 0 }, { 2, 5, 7, 11,20 }, { 13,17,19,23,25} }; // 传参:目标列索引1(对应1开始计数的第二列),行范围为索引1到3 int sum = Summing(matrix, targetColumn:1, startRow:1, endRow:3); Console.WriteLine(sum); Console.ReadKey(); } static int Summing(int[,] m, int targetColumn, int startRow, int endRow) { int sum = 0; // 仅遍历指定行范围,直接取目标列的元素累加 for (int i = startRow; i <= endRow; i++) { sum += m[i, targetColumn]; } return sum; } } }
运行后输出结果为11,符合你的预期。
扩展用法
如果需要更灵活的选中规则,可以自行调整循环逻辑和判断条件,常见场景参考:
- 求所有奇数行的第三列元素和:遍历所有行,判断行索引为奇数时累加对应列元素
- 求指定行的多列元素和:固定行索引,遍历指定列范围累加
- 求满足数值条件的元素和:遍历所有元素,判断
m[i,j]符合数值要求时累加
内容的提问来源于stack exchange,提问作者user16726326
相关产品推荐
相关产品推荐

