编程完成从键盘输入一个n*n(最大为20*20)矩阵的各元素的值,求出该矩阵两条

如题所述

以下是一个使用Python实现的程序,可以从键盘输入一个n*n矩阵,并计算出该矩阵两条对角线上的元素之和:
```python
n = int(input("请输入矩阵的维度n:"))
matrix = []
for i in range(n):
row = list(map(int, input(f"请输入第{i+1}行的{n}个元素,用空格分隔:").split()))
matrix.append(row)
# 计算矩阵两条对角线上的元素之和
sum1 = 0 # 主对角线上的元素之和
sum2 = 0 # 副对角线上的元素之和
for i in range(n):
sum1 += matrix[i][i] # 主对角线上的元素
sum2 += matrix[i][n-i-1] # 副对角线上的元素
print(f"矩阵两条对角线上的元素之和分别为:{sum1}和{sum2}")
```
程序中,首先从键盘输入矩阵的维度n,然后使用循环和input函数逐行输入矩阵中的元素。接下来,使用两个循环计算矩阵的两条对角线上的元素之和,最后输出结果。
需要注意的是,该程序没有对输入进行完整性和合法性的检查,例如输入的矩阵是否为n*n维、输入的元素是否为数字等等,因此需要保证输入的数据符合要求,否则可能会导致程序出错。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-03-14
以下是一份C语言程序,能够实现从键盘输入一个矩阵,并计算出该矩阵的两条对角线的和:
```c
#include <stdio.h>
#define MAXSIZE 20
int main() {
int n, i, j;
int matrix[MAXSIZE][MAXSIZE];
int sum_main = 0, sum_minor = 0;
do {
printf("Please input the size of the matrix(<=20):");
scanf("%d", &n);
} while (n <= 0 || n > MAXSIZE);
// 从键盘输入矩阵的各个元素
printf("Please input the elements of the matrix:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 计算矩阵的两条对角线的和
for (i = 0; i < n; i++) {
sum_main += matrix[i][i];
sum_minor += matrix[i][n - i - 1];
}
// 输出结果
printf("The sum of the main diagonal is: %d\n", sum_main);
printf("The sum of the minor diagonal is: %d\n", sum_minor);
return 0;
}
```
在程序中,首先从键盘输入矩阵的大小,然后利用循环从键盘输入矩阵的各个元素。之后,利用两个循环计算出矩阵的两条对角线的和,并输出结果。
在实际的编程过程中,应该注意矩阵边界的处理,同时还应该考虑输入数据的正确性和越界的问题。