c语言 判断上三角矩阵

上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。
本题要求编写程序,判断一个给定的方阵是否上三角矩阵。
输入格式:
输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。
输出格式:
每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。

我的答案:

#include<stdio.h>
int main()
{
	int T;//待测矩阵的个数
	scanf("%d", &T);
	int i, j, t, flag, n;
	int a[10][10];
	for (t = 1; t <= T; t++)//循环矩阵个数
	{
		flag = 1;
		scanf("%d", &n);//输入行列数
		for(i = 0; i < n; i++)//把数字填入二维数组
			for (j = 0; j < n; j++)
			{
				scanf("%d", &a[i][j]);
					if (i > j)//当行大于列时,如果元素不为0,则不是上三角矩阵
						if (a[i][j] != 0)
						{
							flag = 0;
						}
			}
		if (flag)
		{
			printf("YES\n");
		}
		else
		{
			printf("NO\n");
		}
	}
	return 0;
}

关于多维数组
多维数组,可以通过多个下标去存取其中的数据元素,其定义格式类似于一维数组。比如二维数组:

/*定义了一个二维数组, 第一维(称为行)大小是3, 第二维(称为列)大小为4*/
int a[3][4] = {  
   {0, 1, 2, 3} ,   /* 行下标为0的第1行的初始化 */
   {4, 5, 6, 7} ,   /* 行下标为1的第2行的初始化 */
   {8, 9, 10, 11}   /* 行下标为2的第3行的初始化 */
};

/*定义了一个二维数组, 第二维(称为列)大小为4, 第一维(称为行)大小是2, 行数由初始化式子中的个数确定 */
int matrix[][4] = {  
   {0, 1, 2, 3} ,   /* 行下标为0的第1行的初始化 */
   {4, 5, 6, 7} ,   /* 行下标为1的第2行的初始化 */  
};

/*修改第3行第4列(下标为[2][3])的元素的值*/
a[2][3] = 23;
  • 31
    点赞
  • 93
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值