В предоставленном коде на C++ есть несколько проблем, которые приводят к тому, что он печатает неправильную сумму элементов боковой диагонали двумерного массива.
Во-первых, переменная n используется в условии n==i+j-1, когда должно быть n-1==i+j. Это происходит потому, что боковая диагональ состоит из элементов, где индекс строки плюс индекс столбца равны n-1 (при условии нулевого индекса).
Во-вторых, в строке, где вычисляется sum4, допущена опечатка. Вместо того чтобы добавить arr[j] к sum4, он присваивается к sum4 дважды, что приводит к неправильной сумме.
Вот исправленный код:#include <iostream>
using namespace std;
int main() {
int sum4 = 0;
const int n = 4;
int arr[n][n] = {{-1, 8, 9, 11}, {5, 6, 7, -10}, {3, -3, 2, 5}, {-3, 9, 3, 2}};
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (n - 1 == i + j) { // condition for side diagonal
sum4 += arr[j]; // corrected sum calculation
}
cout << arr[j] << " ";
}
cout << endl;
}