// Se da o matrice patratica de ordin N. Sa se faca schimbari de linii si de coloane pentru ca diagonala secundara sa fie sortata descrescator. #include #include void main() { int i, j, n, a[10][10]; printf("N="); scanf("%d", &n); for (i = 0; i < n; i++) for (j = 0; j < n; j++) scanf("%d", &a[i][j]); // O(N^3) for (int ii = 0; ii < n - 1; ii++) for (int jj = ii + 1; jj < n; jj++) if (a[ii][n - ii - 1] < a[jj][n - jj - 1]) { int tmp[10]; const int len = n * sizeof(int); memcpy(&tmp, &a[ii], len); memcpy(&a[ii], &a[jj], len); memcpy(&a[jj], &tmp, len); for (int k = 0; k < n; k++) { int tmp = a[k][ii]; a[k][ii] = a[k][jj]; a[k][jj] = tmp; } } for (i = 0; i < n; i++) { for (j = 0; j < n; j++) printf("%d ", a[i][j]); printf("\n"); } }