题目描述
KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。
输入描述:
第一行包含一个整数n,表示一个方阵包含n行n列,用空格分隔。 (2≤n≤10)
从2到n+1行,每行输入n个整数(范围-231~231-1),用空格分隔,共输入n*n个数。
输出描述:
一行,如果输入方阵是上三角矩阵输出"YES"并换行,否则输出"NO"并换行。
解题思路
设置一个flag,用来判断是否为上三角矩阵,若三角矩阵里出现一个非0的数,则该矩阵不成立 flag=0.
代码
#include <iostream> #include <cstring> using namespace std; int main() { int a[12][12], n, i, j, flag; flag = 1;//假设三角矩阵成立 cin>>n; for(i = 0;i < n;i++) for(j = 0;j < n;j++) cin>>a[i][j]; for(i = 1;i < n;i++) { for(j = 0;j < i;j++) { if(a[i][j] != 0) flag = 0;//若三角矩阵里出现一个非0的数,则该矩阵不成立 } } if(flag) cout<<"YES"<<endl;//flag,用来判断是否为上三角矩阵,若三角矩阵里出现一个非0的数,则该矩阵不成立 flag=0. else cout<<"NO"<<endl; }