设计一个算法,求二维数组Ann两条对角线上元素之和。用c语言表示完整代码
时间: 2024-10-20 16:14:39 浏览: 100
4-14_lv一维数组中所有元素之和_
设计一个简单的算法来计算给定二维数组 Ann 中对角线元素之和,可以采用两层循环遍历数组的方式,分别累加主对角线 (从左上到右下) 和副对角线 (从左下到右上) 的元素。以下是用 C 语言实现的代码:
```c
#include <stdio.h>
// 定义二维数组结构
typedef struct {
int rows;
int cols;
int arr[100][100]; // 可根据需要调整大小
} Matrix;
int main() {
Matrix ann;
// 获取输入的行数和列数,初始化二维数组
printf("Enter the number of rows and columns for the matrix:\n");
scanf("%d %d", &ann.rows, &ann.cols);
for (int i = 0; i < ann.rows; i++) {
for (int j = 0; j < ann.cols; j++) {
scanf("%d", &ann.arr[i][j]);
}
}
// 主对角线和副对角线元素之和
int diag_sum1 = 0, diag_sum2 = 0;
for (int i = 0; i < ann.rows; i++) {
diag_sum1 += ann.arr[i][i];
if (i < ann.cols - 1) { // 避免越界
diag_sum2 += ann.arr[i][ann.cols - 1 - i];
}
}
printf("Sum of elements on the main diagonal is: %d\n", diag_sum1);
printf("Sum of elements on the secondary diagonal is: %d\n", diag_sum2);
return 0;
}
```
在这个程序中,用户会被提示输入矩阵的行数和列数,然后输入每个元素。最后,它会计算并输出两个对角线上的元素总和。
阅读全文