本关任务:用c语言从键盘输入一个M×M的矩阵,分别求该矩阵主对角线上的元素之和、以及副对角线上的元素之和。要求M的值从键盘输入,且M的值小于10
时间: 2024-03-06 10:47:38 浏览: 75
好的,以下是 C 语言的代码实现:
```c
#include <stdio.h>
int main() {
int M, i, j, sum_main_diag = 0, sum_sec_diag = 0;
int matrix[10][10];
// 从键盘输入矩阵的大小
printf("请输入矩阵的大小:");
scanf("%d", &M);
// 逐个输入矩阵的元素
printf("请输入矩阵的元素:\n");
for (i = 0; i < M; i++) {
for (j = 0; j < M; j++) {
scanf("%d", &matrix[i][j]);
}
}
// 计算主对角线上的元素之和
for (i = 0; i < M; i++) {
sum_main_diag += matrix[i][i];
}
// 计算副对角线上的元素之和
for (i = 0; i < M; i++) {
sum_sec_diag += matrix[i][M-i-1];
}
// 输出结果
printf("主对角线上的元素之和为:%d\n", sum_main_diag);
printf("副对角线上的元素之和为:%d\n", sum_sec_diag);
return 0;
}
```
这段代码首先通过 `scanf` 从键盘输入矩阵的大小M,然后通过两个嵌套循环逐个输入矩阵的元素。接着,通过两个循环分别计算主对角线和副对角线上的元素之和,最后输出结果。
这里同样假设用户输入的矩阵元素都是整数,如果需要支持浮点数,可以将 `int` 改为 `float`。注意,由于输入的矩阵大小不超过10,因此这里没有对输入的大小进行检查,如果需要更健壮的代码,可以添加相应的输入检查。
阅读全文