读入一个正整数n(1≤n≤6),在输入n阶矩阵a,计算该矩阵主对角线和副对角线的所有元素之和(主对角线为从矩阵的左上角至右下角的连线,副对角线为从矩阵的右上角至左下角的连线)。用c语言
时间: 2023-06-13 16:05:52 浏览: 191
以下是使用C语言计算矩阵主对角线和副对角线的代码:
```c
#include <stdio.h>
int main() {
int n, i, j, sum1 = 0, sum2 = 0;
printf("请输入矩阵的阶数n:\n");
scanf("%d", &n);
int a[n][n];
printf("请输入矩阵a的元素:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
// 计算主对角线和副对角线的和
for (i = 0; i < n; i++) {
sum1 += a[i][i]; // 主对角线
sum2 += a[i][n-i-1]; // 副对角线
}
printf("矩阵主对角线的和为%d,副对角线的和为%d。\n", sum1, sum2);
return 0;
}
```
输入:
```
请输入矩阵的阶数n:
3
请输入矩阵a的元素:
1 2 3
4 5 6
7 8 9
```
输出:
```
矩阵主对角线的和为15,副对角线的和为15。
```
相关问题
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 阶矩阵的元素,同时累加主对角线元素和副对角线元素的值。最后输出主对角线元素之和和副对角线元素之和。
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:\n");
scanf("%d", &n);
printf("请输入矩阵a:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &a[i][j]);
}
}
printf("矩阵a如下:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d ", a[i][j]);
if (i == j) {
sum1 += a[i][j]; // 计算主对角线和
}
if (i + j == n - 1) {
sum2 += a[i][j]; // 计算副对角线和
}
}
printf("\n");
}
printf("矩阵a的主对角线和为:%d\n", sum1);
printf("矩阵a的副对角线和为:%d\n", sum2);
return 0;
}
```
该程序先读入矩阵的阶数n,再读入n阶矩阵a,并计算该矩阵的主对角线和和副对角线和。最后输出计算结果。注意,该程序中假定矩阵的阶数不超过6。如果需要处理更大的矩阵,需要修改程序中的数组定义。
阅读全文