一个正方形矩阵,求对角线元素的和
代码:
int diagonalSum(int** mat, int matSize, int* matColSize){
int sum = 0;
for (int i = 0; i < matSize; i++) {
sum = sum + mat[i][i];
sum = sum + mat[i][matSize - 1 - i];
}
if (matSize % 2 == 1) sum = sum - mat[matSize / 2][matSize / 2];
return sum;
}
正方形由两个对角线,一个是行和列的下标是相等,一个是行和列的小标之和为总行数减一。
在总行数为奇数的时候,会重复相加那个中心的数,如果总行数为奇数,就要减去一个中心的数。
结果