c语言给定一个n*n的矩阵,求其对角线的元素之和。 Input 首先输入一个n,n为小于10的奇数。接下来输入一个n行n列的矩阵。 Output 输出一个整数,表示矩阵对角线元素之和。 Hint 温馨提示:矩阵中心的元素不要加两次哦!
时间: 2024-12-21 08:29:59 浏览: 11
C语言程序设计-分别求一个3×3的整型矩阵两对角线元素之和(或之积)。
5星 · 资源好评率100%
在 C 语言中,你可以通过遍历矩阵并仅累加对角线上的元素来解决这个问题。以下是简单的算法步骤:
1. 定义一个函数,比如 `sum_diagonal(int matrix[n][n], int n)`,其中 `matrix` 是输入的二维数组,`n` 是矩阵的大小。
2. 初始化两个变量 `diagonal_sum = 0`,用于存储对角线元素总和。
3. 使用两层嵌套循环。外层循环从第 0 行开始到第 n-1 行,内层循环从第 0 列开始到第 n-1 列。如果外层索引等于内层索引(即 `(i, j) == (index, index)`),则说明当前位置是对角线元素,将当前元素值累加到 `diagonal_sum`。
4. 最后返回 `diagonal_sum`。
5. 示例代码可能如下所示:
```c
#include <stdio.h>
int sum_diagonal(int matrix[10][10], int n) {
int diagonal_sum = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i == j) { // 检查是否在对角线上
diagonal_sum += matrix[i][j];
}
}
}
return diagonal_sum;
}
int main() {
int n;
scanf("%d", &n);
int matrix[n][n]; // 矩阵元素需要用户输入
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
scanf("%d", &matrix[i][j]);
}
}
int result = sum_diagonal(matrix, n);
printf("对角线元素之和为: %d\n", result);
return 0;
}
```
阅读全文