c 从键盘输入一个M×M的矩阵,分别求该矩阵主对角线上的元素之和、以及副对角线上的元素之和。要求M的值从键盘输入,且M的值小于10。
时间: 2024-02-12 15:02:49 浏览: 51
好的,我可以帮你解决这个问题。以下是一个 C 语言的代码示例,可以实现你的需求:
```c
#include <stdio.h>
int main() {
int m, i, j, sum1 = 0, sum2 = 0;
int matrix[10][10]; //假设M的最大值为10
printf("请输入M的值(M小于10):");
scanf("%d", &m);
printf("请输入矩阵各元素的值:\n");
for (i = 0; i < m; i++) {
for (j = 0; j < m; j++) {
scanf("%d", &matrix[i][j]);
if (i == j) {
sum1 += matrix[i][j]; //计算主对角线上的元素之和
}
if (i + j == m - 1) {
sum2 += matrix[i][j]; //计算副对角线上的元素之和
}
}
}
printf("主对角线上的元素之和为:%d\n", sum1);
printf("副对角线上的元素之和为:%d\n", sum2);
return 0;
}
```
这段代码中,我们首先从键盘输入了矩阵的大小 M,然后使用双重循环读取了矩阵的各个元素,并根据元素的位置计算了主对角线和副对角线上的元素之和。最后输出了这两个和的结果。
需要注意的是,这段代码没有对输入的 M 进行范围检查,如果输入的 M 大于等于 10,程序可能会出现错误。如果需要更严格的输入检查,可以在读入 M 的时候进行判断。
阅读全文