编写一个C语言程序,要求:从键盘上输入一个3×3的矩阵,求矩阵的主对角线和副对角线之和,要求定义和调用函数
时间: 2024-03-25 19:35:24 浏览: 62
好的,我可以帮你编写这个程序。
以下是实现该功能的C语言程序:
```c
#include <stdio.h>
/* 函数声明 */
int diagonal_sum(int arr[][3], int size);
int main() {
int matrix[3][3];
int i, j;
/* 输入矩阵 */
printf("请输入3x3矩阵的元素:\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
scanf("%d", &matrix[i][j]);
}
}
/* 调用函数计算对角线和 */
int sum = diagonal_sum(matrix, 3);
/* 输出结果 */
printf("主对角线和副对角线之和为:%d\n", sum);
return 0;
}
/* 计算矩阵主对角线和副对角线之和的函数 */
int diagonal_sum(int arr[][3], int size) {
int i, sum = 0;
for (i = 0; i < size; i++) {
sum += arr[i][i]; /* 计算主对角线元素之和 */
sum += arr[i][size-i-1]; /* 计算副对角线元素之和 */
}
return sum;
}
```
在该程序中,我们定义了一个二维数组 `matrix` 来存储输入的矩阵,然后通过调用 `diagonal_sum()` 函数来计算矩阵的主对角线和副对角线之和。`diagonal_sum()` 函数接收一个二维数组和数组大小作为参数,然后使用一个循环遍历矩阵的对角线元素,并将其加入到 `sum` 中。最后,函数返回 `sum` 的值,该值表示主对角线和副对角线之和。
需要注意的是,在 `diagonal_sum()` 函数中,我们使用了 `size-i-1` 来计算副对角线元素的下标,其中 `size` 表示矩阵的大小,即每行每列的元素个数。
阅读全文