矩阵次对角线上的最大值

Maximum value in secondary diagonal of a matrix

本文关键字:最大值 对角线      更新时间:2023-10-16

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

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;
}

如果有人能帮忙,我将不胜感激。

你的循环应该是

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

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

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

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];
      }
    }
  }
}