该代码应该给出该矩阵的二次对角线的最大值
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;
}
如果有人可以提供帮助,我会很感激。
答案 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];
}
}
}
}