用C语言实现读入一个正整数n(1≤n≤6),再读卖人n阶矩阵a,如果a是上三角矩阵,输出“YES”; 否则,输出“NO”(上三角矩阵,即主对角 线以下的元素都为0)。
时间: 2023-06-15 10:07:29 浏览: 121
以下是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int n, a[6][6], i, j;
scanf("%d", &n);
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
for (i = 0; i < n; i++) {
for (j = 0; j < i; j++) {
if (a[i][j] != 0) {
printf("NO\n");
return 0;
}
}
}
printf("YES\n");
return 0;
}
```
首先读入正整数n和n阶矩阵a,然后逐行逐列遍历矩阵a,如果当前元素在主对角线以下且不为0,则输出“NO”并结束程序,否则继续遍历。如果程序能够正常结束,则说明矩阵a是上三角矩阵,输出“YES”。
相关问题
用C语言实现读入一个正整数 n(l≤n≤6),1再读入n阶矩阵a,计算该矩阵主对角线和副对角线的所有元素之和(主对角线为从矩阵的左上一角至右下角的连线,副对角线为从矩阵的右上角至左下角的连线)。
以下是用C语言实现读入一个n阶矩阵并计算其主对角线和副对角线元素之和的代码:
```c
#include <stdio.h>
int main() {
int n, i, j, sum1 = 0, sum2 = 0;
int a[6][6];
printf("请输入一个正整数n(n<=6):\n");
scanf("%d", &n);
printf("请输入矩阵a:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
if (i == j) { // 主对角线
sum1 += a[i][j];
}
if (i == n - 1 - j) { // 副对角线
sum2 += a[i][j];
}
}
}
printf("主对角线之和为%d,副对角线之和为%d\n", sum1, sum2);
return 0;
}
```
代码解析:
首先读入一个正整数n,然后定义一个二维数组a用来存储n阶矩阵,同时定义两个变量sum1和sum2用来分别保存主对角线和副对角线元素之和。
然后通过两个for循环分别读入矩阵a的元素,并在读入过程中计算主对角线和副对角线的元素之和。具体来说,当i等于j时,表示在主对角线上,将a[i][j]加入sum1中;当i等于n-1-j时,表示在副对角线上,将a[i][j]加入sum2中。
最后输出主对角线和副对角线的元素之和即可。
c语言读入一个正整数n(1≤n≤6),再读入n阶矩阵a,计算该矩阵主对角线和副对角线的所有元素之和
下面是一个简单的 C 语言实现:
```c
#include <stdio.h>
int main() {
int n, i, j, sum1 = 0, sum2 = 0;
int a[6][6];
printf("请输入矩阵的阶数n:");
scanf("%d", &n);
printf("请输入矩阵的元素:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
if (i == j) { // 主对角线元素
sum1 += a[i][j];
}
if (i + j == n - 1) { // 副对角线元素
sum2 += a[i][j];
}
}
}
printf("主对角线元素之和为:%d\n", sum1);
printf("副对角线元素之和为:%d\n", sum2);
return 0;
}
```
程序先读入矩阵的阶数 n,然后读入 n 阶矩阵的元素,同时累加主对角线元素和副对角线元素的值。最后输出主对角线元素之和和副对角线元素之和。
阅读全文