Задача: Поменять местами только те элементы главной и побочной диагоналей массива, которые являются одновременно большими двух и сформировать из них вектор. Язык Си.
Написал такое:
#include <stdio.h>
#include <math.h>
#define N 5
int main()
{int a[N][N]={{9,-2,0,3,4},
{11,-3,4,5,-6},
{-1,4,-4,8,-7},
{3,1,4,-25, 16},
{7,-13,0,51,61}};
int i, j, z, p=0, n=0, v[N], k[N];
for(i=0; i<N; i++)
for(j=0; j<N; j++){
if(i==j) {
v[p]=a[i][j]; p++;}
if(i+j==N-1){
k[n]=a[i][j]; n++;
}
}
for(i=0; i<N; i++){
if (v[i]>2||k[i]>2){
z=v[i];
v[i]=k[i];
k[i]=z;
}
}
for(i=0; i<N; i++) printf(" %d",v[i]);
printf("\n");
for(i=0; i<N; i++) printf(" %d",k[i]);
return 0;
}
Как ещё и сформировать один вектор из тех значений которые одновременно больше 2? И вывести матрицу с уже измененными диагоналями?