C++ 矩阵次对角线上的最大值
这个代码应该给出这个矩阵的次对角线的最大值C++ 矩阵次对角线上的最大值,c++,matrix,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:"; f
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;
}
#包括
使用名称空间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你的循环应该是
for (int i = 1, j = 2; i < 4, j >= 0; i++, j--)
{
if (max < a[i][j])
{
max = a[i][j];
}
}
for(inti=1,j=2;i<4,j>=0;i++,j--)
{
if(max
它给出了正确的值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];
}
}
}
}
for(int i=0;ilast行将包含所有零,是吗?如果您没有注意到:这不是4x4矩阵(除非您有意使用零项)@MarcoA.,这就是为什么我要问的原因,IL.Oops中只给出了12个值。这不应该是零。但即使我将其设置为4x4矩阵,它仍然不起作用。