用c语言编程,上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。 本题要求编写程序,判断一个给定的方阵是否上三角矩阵。 输入格式: 输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。 输出格式: 每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。 输入样例: 3 3 1 2 3 0 4 5 0 0 6 2 1 0 -8 2 3 1 2 3 1 4 5 0 -1 6 输出样例: YES NO NO
时间: 2024-02-25 16:59:11 浏览: 72
C语言判断是否为上三角矩阵
这道题可以直接遍历一遍矩阵,判断是否为上三角矩阵。如果矩阵中存在一个非主对角线上的元素不为0,则说明矩阵不是上三角矩阵。下面是C语言的代码实现:
```c
#include <stdio.h>
int main()
{
int T;
scanf("%d", &T); // 输入矩阵个数T
while (T--) {
int n;
scanf("%d", &n); // 输入矩阵的大小n
int a[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &a[i][j]); // 输入矩阵元素
}
}
int flag = 1; // 标记是否为上三角矩阵
for (int i = 1; i < n; i++) {
for (int j = 0; j < i; j++) {
if (a[i][j] != 0) { // 如果存在一个非主对角线上的元素不为0
flag = 0; // 标记为不是上三角矩阵
break;
}
}
if (!flag) { // 如果已经标记为不是上三角矩阵
break;
}
}
if (flag) { // 如果是上三角矩阵
printf("YES\n");
} else { // 如果不是上三角矩阵
printf("NO\n");
}
}
return 0;
}
```
输入样例:
```
3
3
1 2 3
0 4 5
0 0 6
2
2 3
0 4
3
1 2 3
1 4 5
0 -1 6
```
输出样例:
```
YES
NO
NO
```
阅读全文