用C语言实现:编写函数求任意方阵每行、每列、对角线元素之和。
时间: 2024-03-19 18:45:23 浏览: 80
可以参考以下代码实现:
```c
#include <stdio.h>
#define MAX_SIZE 100
void sum_of_matrix(int arr[][MAX_SIZE], int size) {
int row_sum, col_sum, diagonal_sum, reverse_diagonal_sum;
// 计算每行元素之和
for (int row = 0; row < size; row++) {
row_sum = 0;
for (int col = 0; col < size; col++) {
row_sum += arr[row][col];
}
printf("第 %d 行元素之和为:%d\n", row+1, row_sum);
}
// 计算每列元素之和
for (int col = 0; col < size; col++) {
col_sum = 0;
for (int row = 0; row < size; row++) {
col_sum += arr[row][col];
}
printf("第 %d 列元素之和为:%d\n", col+1, col_sum);
}
// 计算主对角线元素之和
diagonal_sum = 0;
for (int i = 0; i < size; i++) {
diagonal_sum += arr[i][i];
}
printf("主对角线元素之和为:%d\n", diagonal_sum);
// 计算反对角线元素之和
reverse_diagonal_sum = 0;
for (int i = 0; i < size; i++) {
reverse_diagonal_sum += arr[i][size-1-i];
}
printf("反对角线元素之和为:%d\n", reverse_diagonal_sum);
}
int main() {
int arr[MAX_SIZE][MAX_SIZE];
int size;
printf("请输入方阵的大小:");
scanf("%d", &size);
printf("请输入 %d x %d 的矩阵:\n", size, size);
for (int row = 0; row < size; row++) {
for (int col = 0; col < size; col++) {
scanf("%d", &arr[row][col]);
}
}
sum_of_matrix(arr, size);
return 0;
}
```
在此代码中,我们定义了一个 `sum_of_matrix` 函数,该函数接收一个二维数组和数组大小作为参数,然后计算每行、每列、主对角线和反对角线的元素之和,并将结果输出到屏幕上。在 `main` 函数中,我们首先读取方阵的大小,然后读取方阵中的元素,并将它们传递给 `sum_of_matrix` 函数进行处理。
阅读全文