用C语言编写:编写函数求任意方阵每行、每列、对角线元素之和。
时间: 2024-03-31 20:33:52 浏览: 79
可以使用以下代码来实现:
```c
#include <stdio.h>
#define N 3 // 定义矩阵的维度
// 求矩阵每行、每列、对角线元素之和
void sumMatrix(int matrix[][N]) {
int rowSum, colSum, diagonalSum1 = 0, diagonalSum2 = 0;
for (int i = 0; i < N; i++) {
rowSum = 0;
colSum = 0;
for (int j = 0; j < N; j++) {
rowSum += matrix[i][j]; // 求每行元素之和
colSum += matrix[j][i]; // 求每列元素之和
if (i == j) {
diagonalSum1 += matrix[i][j]; // 求主对角线元素之和
}
if (i + j == N - 1) {
diagonalSum2 += matrix[i][j]; // 求副对角线元素之和
}
}
printf("第 %d 行元素之和为:%d\n", i + 1, rowSum);
printf("第 %d 列元素之和为:%d\n", i + 1, colSum);
}
printf("主对角线元素之和为:%d\n", diagonalSum1);
printf("副对角线元素之和为:%d\n", diagonalSum2);
}
int main(void) {
int matrix[N][N] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; // 定义矩阵
sumMatrix(matrix); // 求矩阵每行、每列、对角线元素之和
return 0;
}
```
这里定义了一个 `sumMatrix` 函数用来求任意方阵每行、每列、对角线元素之和。函数中使用了两个循环,分别用来遍历矩阵中的每一行和每一列,并且在循环中判断是否为主对角线或副对角线上的元素,从而求出对应的对角线元素之和。最后在函数中使用 printf 函数打印出每行、每列、对角线元素之和的值。在主函数中定义了一个 `matrix` 数组来存储矩阵的元素,调用 `sumMatrix` 函数求解矩阵每行、每列、对角线元素之和。
阅读全文