题目:

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;
}

运行结果:

C语言解题 || 上三角矩阵判定_#define