题目来源:
https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1125
Description
编写程序,输入一个正整数n(1<=n<=10)和n阶方阵a中的元素,如果a是上三角矩阵,输出“YES”,否则,输出“NO”。
上三角矩阵即主对角线以下(不包括主对角线)的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。
要求定义函数IsUpperTriMatrix()判断矩阵a是否是上三角矩阵,如果是返回1,否则返回0。函数原型如下:
IsUpperTriMatrix(int a, int n);
Input
输入一个正整数n(1<=n<=10)和n阶方阵a中的元素,均为整数。
Output
如果a是上三角矩阵,输出“YES”,否则,输出“NO”
Sample Input
4
1 2 3 4
0 2 2 2
0 0 3 4
0 0 0 4
Sample Output
YES
题意描述:
输入正整数n和n阶方阵
调用函数IsUpperTriMatrix()判断是否为上三角矩阵,是输出“YES”,否输出“NO”
解题思路:
函数IsUpperTriMatrix()中根据行列的变化规律写出写出判断边界即可
程序代码:
1 #include<stdio.h> 2 int a[11][11]; 3 int IsUpperTriMatrix(int n); 4 int main() 5 { 6 int n,i,j; 7 while(scanf("%d",&n) != EOF) 8 { 9 for(i=1;i<=n;i++) 10 { 11 for(j=1;j<=n;j++) 12 { 13 scanf("%d",&a[i][j]); 14 } 15 } 16 if(IsUpperTriMatrix(n)) 17 printf("YES "); 18 else 19 printf("NO "); 20 } 21 return 0; 22 } 23 int IsUpperTriMatrix(int n) 24 { 25 int i,j; 26 for(i=2;i<=n;i++) 27 { 28 for(j=1;j<=i-1;j++) 29 { 30 if(a[i][j] != 0) 31 return 0; 32 } 33 } 34 return 1; 35 }