找出矩阵是上三角形,下三角形还是对角线

时间:2012-11-05 13:43:07

标签: c++ matrix

我已经给出了这个问题,以找出某个顺序的矩阵是上三角形,下三角形还是简单的对角矩阵。 我编译了以下代码。它成功运行上三角和对角线部分,但从未检查下三角条件。

int main()
{

    int mat[10][10];

    cout<< "\n Enter dimension of square matrix;";

    int n;

    cin>>n;

    cout<< "\n Enter the elements for the matrix :";

    for(int i=0; i< n ; i++)
        for (int j = 0; j< n ; j++)
        {
            cout<<"\n Element for positon : " << i+1 << " , " << j+1 << ":";
            cin>> mat[i][j];
        }

    int flag1=0,flg2=0,flg3=0;

    for(int i=0; i< n ; i++)
        for (int j = 0; j< n ; j++)
        {
            if(i == j)
                if(mat[i][j] == 0)
                {
                    flag1 = 1;
                    break;
                }

            if(i!= j)
            {
                if(mat[i][j]!=0)
                {
                    flag1 = 1;
                    break;
                }
                else if(mat[i]>mat[j] && mat[i][j]==0)
                {
                    flg2=flg2+1;
                }
                else (mat[i]<mat[j] && mat[i][j]==0)
                {
                    flg3=flg3+1; 
                }
            }
        }

    if(flag1== 0)
    {
        cout<< "\n A Diagonal Matrix .";
    }
    else if(flg3==3)
    {
        cout<<"\n Lower Triangular Matrix.";
    }
    else (flg2==3)
    {
        cout<<"\n Upper Triangular matrix.";
    }

    cout<<"\n\n Matrix :\n";
    for(int i=0; i< n ; i++)
    {
        for (int j = 0; j< n ; j++)
            cout<< mat[i][j] << " ";

        cout<< endl;
    }
    getch();
}

我使用的是GCC编译器(Dev C ++)。

2 个答案:

答案 0 :(得分:2)

您可能比较mat[i]>mat[j]时的i>j<也是如此。

答案 1 :(得分:0)

其他不应该有条件

else (mat[i]<mat[j] && mat[i][j]==0) {...}

简单地写:

else {...

再次在:

else (flg2==3) {...}

简单地写:

else {...

所以代码不应该编译,而是错误说

  

“预期令牌;在{”

之前

将在45:17和60:5显示