Дан двумерный массив размерами n*n, найти сумму его диагоналей
Дополнен 7 лет назад
i == j - проверка на равенство нумерации элементов в цикле, если не ошибаюсь, координаты точек диагоналей равны по х и у. Пробовал с изначально заданным n: интерпретатор ругается на строчку s = s + a[i][j]
ну для начала нужно, чтобы в массиве реально существовали эти диагонали, попадающие на конкретные числа. Ещё возможно в перекрестии ты дважды учитываешь одно число - стандартная ошибка при программировании.
п. с. упрощай до минимума для анализа - 3х3. И заполняешь к примеру нулями, а в центре 1 и посмотри что получится. Проверяй. Должно быть кконечно 1, А вот если 2, то как раз тот самый косяк и есть. Эксперементируй в общем.
п. п. с. алгоритм определения диагоналей какой ?!
1. Ну ты парень прост как валенок! Ныне уже надо "защиту от дураков" ставить - делать вначале проверку, что диагонали корректные существуют !
2. Язык программирования твой не изучал ни разу. Не вижу ввода изнального всех значений массива. Ты совем новичОк? Хорошо допустим он как-то уже был задан !
3. if i==j: - это что такое? Проверка на равенство элементов или что? Зачем? после этого суммирование? таковых ?
Если проверка на равенство нумерации, то в любом случае ты забываешь вторую диагональ! Ведь вторая диагональ пойдёт справа-налево и сверху вниз. (снизу врятли кто её вверх "потянет":))) Опять же центральный элемент будет посчитан дважды, возможно проще всего попросту его будет вычесть один раз.
4. такое чувство что в начале ты таким образом не можешь ввести двумерный массив никак! Там ж чисел будет n*n, а у тебя "строка" вроде как получается.
п. с. лет 20 назад изучал разные языки програмирования. По моему тут делаешь чего попало (честно говоря). Тебе надо брать поэлементно каждую диагональ и вот как ты складываешь в конце! s. Ты чего-то ненужное складываешь с этой проверкой - личное мнение.