Advertisement
TAHK_KB

Untitled

Feb 25th, 2017
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.45 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. using namespace std;
  6.  
  7. void sort(int*arr, int arrLength)
  8. {
  9. for (int i = 0; i < arrLength; i++)//пузырек
  10. {
  11. for (int j = 0; j < arrLength - i; j++)
  12. {
  13. if (arr[j] > arr[j + 1])
  14. {
  15. int temp;
  16. temp = arr[j];
  17. arr[j] = arr[j + 1];
  18. arr[j + 1] = temp;
  19. }
  20. }
  21. }
  22. }
  23.  
  24. int main()
  25. {
  26. setlocale (LC_ALL, "Russian");
  27. int m, n;
  28. srand(time(NULL));
  29. cout << "Введите количество строк и столбцов" << endl;
  30. cin >> m >> n;
  31. if (m > 8 || n > 8 || m != n)
  32. {
  33. cout << "Введенное значение больше 8-ми или значения не равны" << endl;
  34. exit(1);
  35. }
  36. int **arr = new int* [m];
  37. for(int i = 0; i<m;i++)
  38. arr[i] = new int[n];
  39. cout << "Желаете сами заполнить матрицу? (y/n)" << endl;
  40. char select;
  41. cin >> select;
  42. if (select == 'y')
  43. {
  44. cout << "Вводите данные" << endl;
  45. for(int i = 0; i < m; i++)
  46. {
  47. for(int j = 0; j < n; j++)
  48. {
  49. cin >> arr[i][j];
  50. }
  51. }
  52. }
  53. else
  54. {
  55. for(int i = 0; i < m; i++) {
  56. for(int j =0; j < n; j++) {
  57. arr[i][j] = -10000 + rand() % 20000;
  58. }
  59. }
  60. }
  61. system("cls");
  62. cout << "Ваша матрица:" << endl;
  63. for(int i=0;i<m;++i)
  64. {
  65. for(int j=0;j<n;++j)
  66. cout << arr[i][j] << " ";
  67. cout << endl << endl;
  68. }
  69. cout << endl;
  70. int counter = 0;
  71. int* newArr = new int[n + m - 3];//новый одномерный массив
  72. for(int i=1; i < n; i++)
  73. {
  74. newArr[counter] = arr[0][i];
  75. counter++;
  76. }
  77. for(int i=1; i < (n-1); i++)
  78. {
  79. newArr[counter] = arr[i][n-1];
  80. counter++;
  81. }
  82. sort(newArr, counter);//сортировка
  83. cout << endl << endl << endl;
  84. counter=0;
  85. for(int i=1; i < n; i++)//возвращение к двумерному
  86. {
  87. arr[0][i]=newArr[counter];
  88. counter++;
  89. }
  90. for(int i=1; i < (n-1); i++)
  91. {
  92. arr[i][n-1]=newArr[counter];
  93. counter++;
  94. }
  95. counter=0;//обнуление счетчика
  96. /*int* mas = new int[n + m - 3];
  97. for(int i=1; i < n; i++)
  98. {
  99. mas[counter] = arr[i][0];
  100. counter++;
  101. }
  102. for(int i=1; i < (n-1); i++)
  103. {
  104. mas[counter] = arr[n-1][i];
  105. counter++;
  106. }
  107. sort(mas,counter);
  108. counter=0;
  109. for (int i=1; i < n; i++)
  110. {
  111. arr[i][0]=mas[counter];
  112. counter++;
  113. }
  114. for (int i=1; i < n-1; i++)
  115. {
  116. arr[n-1][i]=mas[counter];
  117. counter++;
  118. }
  119. int* massive = new int[n];
  120. counter=0;
  121. for (int i=0; i < n; i++)
  122. {
  123. massive[counter]=arr[i][i];
  124. counter++;
  125. }
  126. sort(massive, counter);
  127. counter=0;
  128. for (int i=0; i < n; i++)
  129. {
  130. arr[i][i]=massive[counter];
  131. counter++;
  132. }*/
  133. cout << "Измененная матрица" << endl;
  134. for(int i=0;i<m;++i)
  135. {
  136. for(int j=0;j<n;++j)
  137. cout << arr[i][j] << " ";
  138. cout << endl << endl;
  139. }
  140. return 0;
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement