Рассмотрим квадратную матрицу N на N. Выведем на экран обе ее диагонали (главную
диагональ и перпендикулярную ей). С главной диагональю все просто – в цикле выводим все элементы, у которых номера строки и столбца равны, то есть A[i][i] для всех i от 0 до N-1 .
Вторую диагональ формируют такие элементы:
A[0][N-1], A[1][N-2], A[2][N-3],..., A[N-1][0]
Обратим внимание, что каждый следующий элемент имеет номер строки на 1 больше, а номер столбца – на 1 меньше. Таким образом, сумма номеров строки и столбца постоянна и равна N-1. Тогда, зная номер строки i можно сразу сказать, что на второй диагонали стоит ее элемент A[i][N-1-i] .
\
Перестановка строк и столбцов
Пусть надо переставить две строки с индексами i1 и i2. Это значит, что для каждого
столбца j надо поменять местами элементы A[i1][j] и A[i2][j] через временную переменную (она называется temp).
for (j = 0; j < N; j ++) {
temp = A[i1][j];
A[i1][j] = A[i2][j];
A[i2][j] = temp;
}