нужно найти сумму элементов главной и побочной диагоналей трёхмерного массива

int s = 0;
for (int i = 0; i < n; ++i) {
    for (int j = 0; j< n; ++j) {
        s += A[i][j][i];
    }
}

вот часть кода для нахождения суммы элементов главной диагонали трёхмерного массива. в чем ошибка? подскажите пожалуйста


Ответы (1 шт):

Автор решения: Zhihar

для трехмерной матрицы это будет выглядеть как

int sum = 0
for (int i = 0; i < n; i ++) {
    sum += matrix[i][i][i];
}

а вот побочных диагоналей, как я понимаю должно быть много?

sum1 += matrix[n-1-i][i][i];
sum2 += matrix[i][n-1-i][i];
sum3 += matrix[i][i][n-1-i];

ну и если массив одномерный (как обычно и делается), то тогда надо вычислять индекс по типу

const int index = i*n*n + i*n + i;
sum += matrix[index];
→ Ссылка