题目描述
输入一个正整数n(1<= n <= 6)和n阶方阵a中的每一个元素,如果a是上三角矩阵,输出“YES",否则输出”NO"(上三角矩阵即主对角线以下的元素都为0的矩阵,主对角为从矩阵的左上角至右下角的连线)。
输入
多组测试数据,每组输入一个正整数n,和n行n列的整数,每一行回车结束
输出
如果a是上三角矩阵,输出“YES",否则输出”NO"
样例输入
3 1 2 3 0 4 5 0 0 6 4 1 2 3 4 5 6 7 8 9 0 11 12 13 0 0 16
样例输出
YES NO
#include<stdio.h>
int main(){
int n;
int i,j;
int k=0;
int a[6][6];
while(scanf("%d",&n)!=EOF){
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&a[i][j]);
if(i>j){
if(a[i][j]!=0){
k=1;
}
}
}
}
if(k==1){
printf("NO\n");
}
else{
printf("YES\n");
}
k=0;
}
return 0;
}
自我分析:我在分析问题时,认为1阶矩阵,输入0的时候,是上三角矩阵,而输入非0的时候,不是上三角矩阵。但是没想到,1阶矩阵输入任何数都被认定为上三角矩阵。