从键盘输入一个M×M的矩阵,分别求该矩阵主对角线上的元素之和、以及副对角线上的元素之和
时间: 2023-08-09 19:04:55 浏览: 87
好的,可以使用以下代码实现:
```python
M = int(input("请输入矩阵的大小M:"))
# 初始化矩阵
matrix = []
for i in range(M):
row = input("请输入第{}行元素,以空格分隔:".format(i+1)).split()
matrix.append([int(x) for x in row])
# 求主对角线和
sum_main_diag = sum(matrix[i][i] for i in range(M))
# 求副对角线和
sum_vice_diag = sum(matrix[i][M-i-1] for i in range(M))
# 输出结果
print("主对角线元素之和为:", sum_main_diag)
print("副对角线元素之和为:", sum_vice_diag)
```
示例输出:
```
请输入矩阵的大小M:3
请输入第1行元素,以空格分隔:1 2 3
请输入第2行元素,以空格分隔:4 5 6
请输入第3行元素,以空格分隔:7 8 9
主对角线元素之和为: 15
副对角线元素之和为: 15
```
相关问题
c语言从键盘输入一个M×M的矩阵,分别求该矩阵主对角线上的元素之和、以及副对角线上的元素之和。要求M的值从键盘输入,且M的值小于10。
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
int main()
{
int M, i, j, main_sum = 0, vice_sum = 0; // M表示矩阵的阶数,i和j用于循环,main_sum和vice_sum分别表示主对角线上和副对角线上的元素之和
printf("请输入矩阵的阶数M(M<10):");
scanf("%d", &M); // 从键盘读入矩阵的阶数
int matrix[M][M]; // 定义一个M×M的矩阵
printf("请按行优先顺序输入矩阵的元素:\n");
for (i = 0; i < M; i++)
{
for (j = 0; j < M; j++)
{
scanf("%d", &matrix[i][j]); // 从键盘读入矩阵的元素
if (i == j) // 如果当前元素在主对角线上
{
main_sum += matrix[i][j]; // 将该元素加入主对角线上的元素之和中
}
if (i + j == M - 1) // 如果当前元素在副对角线上
{
vice_sum += matrix[i][j]; // 将该元素加入副对角线上的元素之和中
}
}
}
printf("主对角线上的元素之和为%d\n", main_sum);
printf("副对角线上的元素之和为%d\n", vice_sum);
return 0;
}
```
该程序首先从键盘读入矩阵的阶数M,然后定义一个M×M的矩阵,并从键盘读入矩阵的元素。在读入每个元素时,如果该元素在主对角线上,则将该元素加入主对角线上的元素之和中;如果该元素在副对角线上,则将该元素加入副对角线上的元素之和中。最终输出主对角线和副对角线上的元素之和即可。
C语言编译。 从键盘输入一个M×M的矩阵,分别求该矩阵主对角线的元素之和,以及副对角线上的元素之和。要求M的值从键盘输入,且M的值小于10
以下是C语言代码实现:
```c
#include <stdio.h>
int main() {
int m;
printf("请输入M的值(M < 10):");
scanf("%d", &m);
int matrix[m][m];
// 输入矩阵元素
printf("请输入%d×%d的矩阵:\n", m, m);
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 求主对角线元素之和
int main_sum = 0;
for (int i = 0; i < m; i++) {
main_sum += matrix[i][i];
}
// 求副对角线元素之和
int vice_sum = 0;
for (int i = 0; i < m; i++) {
vice_sum += matrix[i][m-i-1];
}
printf("主对角线元素之和:%d\n", main_sum);
printf("副对角线元素之和:%d\n", vice_sum);
return 0;
}
```
代码中先从键盘输入矩阵的大小M,然后定义一个M×M的二维数组存储矩阵元素。接着通过两个循环分别输入矩阵元素,然后再通过两个循环分别计算主对角线和副对角线元素之和,最后输出结果。
相关推荐
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)