Верхний треугольник квадратной матрицы относительно главной диагонали – это элементы, у которых i<j, если главная диагональ не включается, или i <= j, если включается. Аналогично определяется нижний треугольник, относительно главной диагонали и треугольники относительно побочной диагонали.
Для обработки таких треугольников необходимо определить, как изменяются индексы. В произвольной i-ой строке индекс j изменяется от i до n-1. Поэтому, например, подсчет количества нулевых элементов верхнего треугольника, включая и главную диагональ, будет выглядеть следующим образом:
const int n=10;
double A[n][n];
int K0=0;
for (int i=0; i<n; i++)
for (int j=i; j<n; j++)
if (A[i][j] ==0) K0++;
Если саму главную диагональ анализировать не надо, то заголовок внутреннего цикла будет выглядеть так:
for (int j=i+1; j<n; j++)
Подсчет количества нулевых элементов нижнего треугольника относительно побочной диагоналивыглядит так:
const int n=10;
double A[n][n];
int K0=0;
for (int i=0; i<n; i++)
for (int j=n-i-1; j<n; j++)
if (!A[i][j]) K0++; //или (A[i][j] ==0)
Преобразование матриц
Перестановка строк
Перестановка двух строк, номера которых n1 и n2 заданы, выполняется следующим образом:
const int n=10;
const int m=5;
double A[n][m];
int n1, n2;
cin >> n1>> n2;
int R;
for (int j=0; j<m; j++) //цикл по столбцам
{R=A[n1][j];
A[n1][j]= A[n2][j];
A[n2][j]=R;
}