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