C语言 (1) 写一个函数,求方阵(如a[4][4])对角线元素的和,在主函数中进行调用和测试
时间: 2024-01-22 12:18:41 浏览: 71
下面是一个求方阵对角线元素和的C语言函数:
```c
#include <stdio.h>
int diagonal_sum(int a[][4], int n) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += a[i][i]; // 加上主对角线元素
sum += a[i][n - i - 1]; // 加上副对角线元素
}
if (n % 2 == 1) {
sum -= a[n / 2][n / 2]; // 如果n为奇数,减去重复计算的中心元素
}
return sum;
}
int main() {
int a[4][4] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12},
{13, 14, 15, 16}};
int sum = diagonal_sum(a, 4);
printf("The sum of diagonal elements is %d\n", sum);
return 0;
}
```
函数`diagonal_sum`接收一个二维数组和它的大小,遍历主对角线和副对角线上的元素,并将它们加起来。如果方阵大小为奇数,中心元素会被重复计算,因此需要减去一次。在`main`函数中,我们定义了一个4x4的方阵,并调用`diagonal_sum`函数来计算对角线元素和。
阅读全文