矩阵的次对角线的最大值

时间:2014-05-28 14:15:33

标签: c++ matrix

该代码应该给出该矩阵的二次对角线的最大值

1  2  3  4
4  5  6  8
9 10 11 12

但它给出了错误的答案。它似乎有一点点错误,我无法确定。

#include<iostream>
using namespace std;
int main()
{

  int a[4][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
  int max = a[0][3];
  cout<<"The matrix is:";

  for(int i = 0; i<4;i++)
  {
    cout<<"\n";
    for(int j=0; j<4; j++)
      cout<<a[i][j]<<" ";
  }

  for(int i = 0; i<4; i++)
  {
    for(int j=0;j<4-i-1;j++)
    {
      if(i+j==3)
      {
        if(max<a[i][j])
        {
          max = a[i][j];
        }
      }
    }
  }

  cout<<"maximum value in second diagonal:"<<max<<endl;

  system("pause");

  return 0;

}

如果有人可以提供帮助,我会很感激。

2 个答案:

答案 0 :(得分:0)

你的循环应该是

for (int i = 1, j = 2; i < 4, j >= 0; i++, j--)
{
  if (max < a[i][j])
  {
     max = a[i][j];
  }
}

它给出了正确的值10。不需要双循环。

答案 1 :(得分:0)

你的循环有一个错误。它应该是

for(int i = 0; i<4; i++)
{
  for(int j=0;j<4-i;j++)
  {
    if(i+j==3)
    {
      if(max<a[i][j])
      {
        max = a[i][j];
      }
    }
  }
}