键盘输入一个M×M的矩阵,分别求该矩阵主对角线上的元素之和、以及副对角线上的元素之和。要求M的值从键盘输入,且M的值小于10。c语言
时间: 2024-02-11 17:08:15 浏览: 21
可以使用以下代码实现:
```c
#include <stdio.h>
int main() {
int M;
int matrix[10][10];
int sum1 = 0, sum2 = 0;
printf("请输入M的值(M小于10):");
scanf("%d", &M);
// 输入矩阵
printf("请输入矩阵的%d个元素:\n", M * M);
for (int i = 0; i < M; i++) {
for (int j = 0; j < M; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 求主对角线上的元素之和
for (int i = 0; i < M; i++) {
sum1 += matrix[i][i];
}
// 求副对角线上的元素之和
for (int i = 0; i < M; i++) {
sum2 += matrix[i][M - i - 1];
}
// 输出结果
printf("主对角线上的元素之和为:%d\n", sum1);
printf("副对角线上的元素之和为:%d\n", sum2);
return 0;
}
```
这段代码中,我们首先定义了一个整型变量`M`,用于存储矩阵的行数和列数。然后定义了一个二维数组`matrix`,用于存储输入的矩阵。接着使用`scanf`函数从键盘输入`M`的值,再使用`for`循环输入矩阵的每个元素。接下来,分别使用两个`for`循环计算矩阵的主对角线上的元素之和和副对角线上的元素之和,并将结果存入变量`sum1`和`sum2`中。最后,使用`printf`函数输出结果即可。