2015-09-08 96 views
0

我想計算2d數組中的行數之和,並將行與其他行的最大總和進行比較。我成功地計算了每行的總和,並將行的最大值與其他行進行比較,但是我目前面臨的問題是我不知道如何打印具有最大總和的行號。這裏是我正在處理的一段代碼:C++打印行號以及行數的最大總和二維數組

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

你必須記住你的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); 
} 
+0

它沒有工作。通過編譯我提供的代碼來計算maxsum,但是編譯後代碼maxsum計算受到干擾,並且行數並不指向具有最大總和的行。 –

+0

請記住,該行是0索引的。 –

+0

是的。結帳我再次向您發送的代碼 –