fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. // Функция для свопа элементов
  7. void swap(int *a, int *b) {
  8. int temp = *a;
  9. *a = *b;
  10. *b = temp;
  11. }
  12.  
  13. // Функция сортировки главной диагонали
  14. void sortMainDiagonal(int **arr, int n) {
  15. for (int i = 0; i < n; i++) {
  16. for (int j = 0; j < n - i - 1; j++) {
  17. if (arr[j][j] < arr[j + 1][j + 1]) {
  18. swap(&arr[j][j], &arr[j + 1][j + 1]);
  19. }
  20. }
  21. }
  22. }
  23.  
  24. // Функция печати массива
  25. void printArray(int **arr, int n) {
  26. for (int i = 0; i < n; i++) {
  27. for (int j = 0; j < n; j++) {
  28. cout << arr[i][j] << " ";
  29. }
  30. cout << endl;
  31. }
  32. }
  33.  
  34. int main() {
  35. int n; // Размерность массива
  36.  
  37. // Ввод размерности массива
  38. cout << "Введите размерность массива (n): ";
  39. cin >> n;
  40.  
  41. // Динамическое выделение памяти для массива
  42. int **arr = new int*[n];
  43. for (int i = 0; i < n; i++) {
  44. arr[i] = new int[n];
  45. }
  46.  
  47. // Ввод элементов массива
  48. cout << "Введите элементы массива:" << endl;
  49. for (int i = 0; i < n; i++) {
  50. for (int j = 0; j < n; j++) {
  51. cin >> arr[i][j];
  52. }
  53. }
  54.  
  55. // Сортировка главной диагонали
  56. sortMainDiagonal(arr, n);
  57.  
  58. // Вывод отсортированного массива
  59. cout << "Отсортированный массив:" << endl;
  60. printArray(arr, n);
  61.  
  62. // Освобождение памяти
  63. for (int i = 0; i < n; i++) {
  64. delete[] arr[i];
  65. }
  66. delete[] arr;
  67.  
  68. return 0;
  69. }
Success #stdin #stdout 0.01s 5280KB
stdin
1 4 2 
5 3 6
8 9 7
stdout
Введите размерность массива (n): Введите элементы массива:
Отсортированный массив:
4