Квадратные матрицы

Пусть матрица А содержит N строк и столько же столбцов. Такие матрицы называют квадратными.
У квадратных матриц можно выделить главную и побочную диагонали.
 
Главная диагональ - диагональ, которая идет с левого верхнего угла в правый нижний угол.
Побочная диагональ - идет с правого верхнего угла в левый нижний угол.

Тогда для перебора всех элементов, стоящих на главной диагонали достаточно одного цикла:
псевдокод:
для i от 0 до N-1
     работаем с A[i][i]

Таким же циклом можно перебрать элементы побочной диагонали.
Для элементов, стоящих на побочной диагонали сумма индексов строки и столбца постоянна и равна N-1.
псевдокод:
для i от 0 до N-1
     работаем с A[i][N-1-i]

Чтобы обработать все элементы, расположенные на главной диагонали и под ней, нужен вложенный цикл:
- номер строки меняется от 0 до N-1;
- номер столбца от 0 до i.
псевдокод:
для i от 0 до N-1
    для j от 0 до i
     работаем с A[i][j]