题目:
KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。
输入描述:
第一行包含一个整数n,表示一个方阵包含n行n列,用空格分隔。 (1≤n≤10)从2到n+1行,每行输入n个整数(范围-231~231-1),用空格分隔,共输入n*n个数。
输出描述:
一行,如果输入方阵是上三角矩阵输出"YES"并换行,否则输出"NO"并换行。
示例:
输入:
3
1 2 3
0 4 5
0 0 6
输出:
YES
代码实现:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int Is( const int arr[][10], int sz)
{
int r = 0;
int c = 0;
for (r = 1; r < sz; r++)//从第2行开始比,一直比到二维数组底部
{
for (c = 0; c < r; c++)
{
if (0 != arr[r][c])
{
return 0;
}
}
}
return 1;
}
int main()
{
int arr[10][10] = { 0 };
int sz = 0;
int r = 0;
int c = 0;
int ret = 0;
//输入
scanf("%d", &sz);
for (r = 0; r < sz; r++)
{
for (c = 0; c < sz; c++)
{
scanf("%d", &arr[r][c]);
}
}
//判断
ret = Is(arr, sz);
//输出
if (1 == ret)
{
printf("YES\n");
}
else
{
printf("NO\n");
}
return 0;
}