C ++打印行号以及最大行数2D阵列

时间:2015-09-08 15:35:39

标签: c++ arrays function 2d

我正在尝试计算2d数组中的行总和,并将行的最大总和与其他行进行比较。我成功计算了每一行的总和,并将行的最大值与其他行进行了比较,但我目前面临的问题是我不知道如何打印具有最大总和的行号。这是我正在处理的一段代码:

void calculateMaxRowSum(int array[10][10])
{
     int maxsum = 0;
     for(int i=0;i<10;i++) 
     {  
          int sum = 0;  
          for(int j=0;j<10;j++)
          {
               sum = sum + array[i][j];
          }
               if(sum > maxsum)
                    maxsum = sum;
     }
     cout<<"Row No. "<<(Problem is here)<<" has maximum sum: "<<maxsum<<endl;
}

请帮帮我。 感谢!!!

1 个答案:

答案 0 :(得分:1)

你必须记住你的rownumber

#include <string>
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <sstream>
#include <cstring>

using namespace std;

void calculateMaxRowSum(int array[10][10])
{
    int maxrow = -1;
    int maxsum = 0;
    for (int i = 0; i<10; i++)
    {
        int sum = 0;
        for (int j = 0; j<10; j++)
        {
            sum = sum + array[i][j];
        }
        if (sum > maxsum)
        {
            maxrow = i;
            maxsum = sum;
        }
    }
    cout << "Row No. " << maxrow << " has maximum sum: " << maxsum << endl;
}
int main() {
    int arr[10][10] = { 
        { 1,1,1,1,1,1,1,1,1,1}, //Row No. 0
        { 1,1,1,1,1,1,1,1,1,1}, //Row No. 1
        { 1,1,1,1,1,1,1,1,1,1}, //Row No. 2
        { 1,1,1,1,1,1,1,1,1,1}, //Row No. 3
        { 1,1,1,1,1,1,1,1,1,1}, //Row No. 4
        { 9,1,1,1,1,1,1,1,1,1}, //Row No. 5 //MAX
        { 1,1,1,1,1,1,1,1,1,1}, //Row No. 6
        { 1,1,1,1,1,1,1,1,1,1}, //Row No. 7
        { 1,1,1,1,1,1,1,1,1,1}, //Row No. 8
        { 1,1,1,1,1,1,1,1,1,1}  //Row No. 9
    };

    calculateMaxRowSum(arr);
}