C语言输入一个整数矩阵,计算位于第一行和最后一行的元素以及第一列和最后一列的元素还有矩阵两条对角线的元素之和并输出。要求编写一个函数(传入参数为该矩阵)实现上述功能,传入参数为NxN的矩阵。(一个元素只计算一次)
时间: 2024-10-28 19:15:27 浏览: 40
在C语言中,你可以通过定义一个函数来完成这个任务。首先,我们需要定义一个二维数组来表示矩阵,并初始化它。然后,我们创建一个函数,例如`calculate_sums(int matrix[N][N])`,接收一个`N * N`的整数矩阵作为参数。
以下是一个简单的示例函数实现:
```c
#include <stdio.h>
// 函数声明,用于计算矩阵对角线、第一行和最后一行及第一列和最后一列的元素总和
int calculate_sums(int matrix[N][N]);
// 主函数
int main() {
int matrix[5][5]; // 假设一个5x5的矩阵
// ... 初始化矩阵 ...
// 调用计算函数
int result = calculate_sums(matrix);
// 输出结果
printf("第一行和最后一行,以及第一列和最后一列,以及两条对角线的元素总和: %d\n", result);
return 0;
}
// 定义计算函数
int calculate_sums(int matrix[N][N]) {
int sum_top_row = 0; // 第一行元素之和
int sum_bottom_row = 0; // 最后一行元素之和
int sum_first_col = 0; // 第一列元素之和
int sum_last_col = 0; // 最后一列元素之和
int diag_sum = 0; // 对角线元素之和
for (int i = 0; i < N; i++) {
sum_top_row += matrix[i][0]; // 取第一行的每个元素
sum_bottom_row += matrix[N - 1][i]; // 取最后一行的每个元素
sum_first_col += matrix[0][i]; // 取第一列的每个元素
sum_last_col += matrix[i][N - 1]; // 取最后一列的每个元素
if (i == 0 || i == N - 1) { // 如果是主对角线
diag_sum += matrix[i][i];
}
}
return sum_top_row + sum_bottom_row + sum_first_col + sum_last_col + diag_sum; // 返回所有和的总和
}
```
阅读全文