題目來源:
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\n"); 18 else 19 printf("NO\n"); 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 }
