习题7-3 判断上三角矩阵 (15分)

上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。

本题要求编写程序,判断一个给定的方阵是否上三角矩阵。

输入格式:

输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。

输出格式:

每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。

输入样例:

2
3
1 2 3
0 4 5
0 0 6
2
1 0
-8 2

输出样例:

YES
NO

#include <stdio.h>
int main (void){
	int n;//矩阵个数
	scanf("%d",&n);
	int i, j, k; 
	int a[10][10];
	int b[100] = {0};//定义一个数组,专门存放判断结果
	for(k = 0; k <n; k++){//输入数组和判断都要在一个循环中完成
		int m;
		scanf("%d", &m);
		
		for(i = 0; i < m; i++)
			for(j = 0; j < m; j++)
				scanf("%d", &a[i][j]);
		//输入结束,开始判断
		for(i = 0; i < m; i++){
			for(j = 0; j < m; j++){
					if(i > j && a[i][j] != 0) b[k] = -1;
			}
		}
	}
	//利用b[k]数组作为判断标准
	for(k = 0; k < n; k++){
		if(b[k] == -1) printf("NO\n");
		else printf("YES\n");
	}
return 0;
}

一开始不知道多个矩阵数组怎么又输入 又判断 又输出,输入还必须连续,最后参考别人这个很好的做法,用b[k]作为一个数组,它的编号对应着每一个矩阵,它的值代表了矩阵是不是上三角形矩阵这个判断结果,通过输入、判断给b[k]赋值,最后再逐个对应输出b[k]

发布了18 篇原创文章 · 获赞 0 · 访问量 100
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 深蓝海洋 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览