如何使用C语言编程输入任意到一个m乘以 m 矩阵并求其两条对角线上元素之和?
时间: 2024-12-16 09:18:33 浏览: 8
在C语言中,你可以通过循环结构来实现矩阵的输入以及对角线元素的求和。以下是一个简单的步骤:
1. 首先,你需要定义一个函数来获取用户输入的矩阵。这通常涉及两个嵌套循环,外层循环用于行,内层循环用于列。
```c
#include <stdio.h>
#define ROWS 5 // 更改这个值以适应你的m值
#define COLS 5 // 同样,这里是m值
int get_matrix(int matrix[ROWS][COLS]) {
int sum_diagonal1 = 0, sum_diagonal2 = 0;
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("请输入第 %d 行第 %d 列的元素: ", i+1, j+1);
scanf("%d", &matrix[i][j]);
// 对于主对角线(从左上到右下)
if (i == j) {
sum_diagonal1 += matrix[i][j];
}
// 对于副对角线(从右上到左下)
if (i + j == ROWS - 1) { // 注意:这里需要处理行数减1的情况
sum_diagonal2 += matrix[i][j];
}
}
}
return sum_diagonal1 + sum_diagonal2;
}
int main() {
int matrix[ROWS][COLS];
int total_sum = get_matrix(matrix);
printf("主对角线和为: %d\n", total_sum);
printf("副对角线和为: %d\n", total_sum - (ROWS * matrix[0][0])); // 主副对角线和之差即为主对角线元素和
return 0;
}
```
在这个示例中,`get_matrix` 函数接收一个二维数组作为输入,并计算两对角线的元素总和。在`main`函数里,创建一个矩阵并将结果打印出来。
阅读全文