输入一个正整数n(1<=n<=6)和n阶方阵a中的元素,如果a是上三角矩阵,输出“YES”,否则,输出“NO”。
//*************判断是否为上三角矩阵*******************
//看下三角矩阵全为0,整个矩阵不能全为0,两个条件需全部满足
#include<stdio.h>
int main(void){
int i,j,k,n;
int a[6][6];
printf("Enter n:");
scanf("%d",&n);
for(i=0;i<n;i++){
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
//检查是否为上三角矩阵
int flag=0;
int count=0;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(i>j){
//判断下矩阵不为0---break,为0-----count++
if(a[i][j]!=0){
flag=1;
break;
}
else
count++;
}
//判断上矩阵为0------count++
else
if(a[i][j]==0)
count++;
}
//如果flag==1,直接跳出整个for循环
if(flag){
break;
}
}
//判断是否为上三角矩阵
if(flag==0&&count!=n*n){
printf("YES\n");
}else if(flag!=0||count==n*n){
printf("NO\n");
}
return 0;
}