如何在具有相同第一个索引 (c++) 的二维矩阵中添加值

How to add values in a 2d matrix with same first index (c++)

本文关键字:二维 添加 c++ 索引 第一个      更新时间:2023-10-16

我有一组值存储在二维矩阵中。 我想为具有相同第一个索引的值创建单独的总计。 下面是一个简短的示例:

typedef int matrix [9][9];
matrix sampleMatrix;
sampleMatrix [1][2] = 3;
sampleMatrix [1][4] = 5;
sampleMatrix [3][5] = 6;
sampleMatrix [3][2] = 2;
sampleMatrix [5][1] = 1;
for (int i = 0; i < 9; i++){
   for (int j = 0; j < 9; j++){
        //here's where I'm stuck
        //if i = 1, then total all values with i = 1 etc.
        if(sampleMatrix[i]){ 
        int sum = sum + sampleMatrix[i][j];
        }
        std::cout << i << " Total: " << sum << std::endl;
   }
}

感谢您的任何帮助。

如果用

0 初始化数组的所有值,那么您将能够汇总每个第 i 个索引的所有值

matrix sampleMatrix;
for(int i=0;i<9;i++){
    for(int j=0;j<9;j++){
         sampleMatrix[i][j]=0;
    }
}
sampleMatrix [1][2] = 3;
sampleMatrix [1][4] = 5;
sampleMatrix [3][5] = 6;
sampleMatrix [3][2] = 2;
sampleMatrix [5][1] = 1;
for (int i = 0; i < 9; i++){
   int sum=0;
   for (int j = 0; j < 9; j++){
          sum = sum + sampleMatrix[i][j];       
   }
   cout<<sum<<endl;
}

构建一个长度为 9 的整数数组,如 int sums [9],并用 0 初始化每个条目。在你的双 for 循环中,对于每个 sampleMatrix [i][j] 条目,将其添加到 sums 数组的相应条目中,如 sums [i] += sampleMatrix [i][j]