发现矩阵是上三角形,下三角还是对角线

Finding whether a matrix is upper triangular,lower triangular or diagonal

本文关键字:三角 对角线 三角形 发现      更新时间:2023-10-16

我被给出了这个问题,以查找某些顺序的矩阵是上三角形的,下三角还是仅仅是对角线矩阵。我编译了以下代码。它成功地用于上三角形和对角线部分,但从未检查过下三角形条件。

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<<"nn 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 )。

当您表示i>j时,您正在比较mat[i]>mat[j],对于<

其他不应该有条件

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

简单地写:

else {...

再次在:

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

简单地写:

else {...

因此,代码不应编译,但是说明

的错误

"预期令牌; {"

之前

将在45:17和60:5

显示