0

特定の順序の行列が上三角、下三角、または単に対角行列であるかどうかを調べるために、この問題が与えられました。次のコードをコンパイルしました。上三角部分と対角部分では正常に実行されますが、下三角条件はチェックされません。

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++) を使用しています。

4

2 に答える 2

2

mat[i]>mat[j]おそらく を意味するときに比較していますがi>j、 についても同じです<

于 2012-11-05T13:51:57.120 に答える