Username77177

Dahl-Programming-Lab10-16

Apr 3rd, 2020
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.88 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std;
  4. int main() {
  5. //Задача 1. Преобразовать массив таким образом, чтобы в первой его
  6. //половине располагались элемент кратные 2, а во второй половине остальные.
  7.  
  8. cout << "Привет, это программа для сортировки\n";
  9. srand(time(0));
  10.  
  11. cout << "Сколько элементов будет у массива: ";
  12. int num;
  13. cin >> num;
  14.  
  15. while (num <= 0)
  16. {
  17. cout << "Введите нормальное количество элементов: ";
  18. cin >> num;
  19. }
  20.  
  21. int *array = new int[num];
  22. for (int i = 0; i < num; i++) {
  23. array[i] = rand() % 21 - 10;
  24. }
  25.  
  26. for (int i = 0; i < num; i++) {
  27. for (int j = 1; j < num - i; j++) {
  28. if (array[j - 1] % 2 != 0 ) {
  29. swap(array[j-1],array[j]);
  30. }
  31. }
  32. }
  33.  
  34. for (int i = 0; i < num; i++) {
  35. cout << array[i] << "\t";
  36.  
  37. }
  38. cout << "\n\n";
  39.  
  40. // Задача 2. Дана целочисленная квадратная матрица. Упорядочить по
  41. // возрастанию элементы в тех столбцах, которые не содержат отрицательных элементов.
  42. int j;
  43.  
  44. while (true)
  45. {
  46. cout << "Введите нормальное количество элементов в матрице: ";
  47. cin >> j;
  48. if (j >= 1)
  49. {
  50. break;
  51. }
  52. }
  53.  
  54. //init
  55. int** array2 = new int*[j];
  56. for (int l = 0; l < j; l++) {
  57. array2[l] = new int[j];
  58. }
  59.  
  60. //fill
  61. for (int i = 0; i < j; i++)
  62. {
  63. for (int k = 0; k < j; k++)
  64. {
  65. array2[i][k] = rand() % 21 - 2;
  66. }
  67. }
  68.  
  69. //show
  70. for (int n = 0; n < j; n++) {
  71. for (int i = 0; i < j; i++) {
  72. cout << array2[n][i] << " ";
  73. }
  74. cout << endl;
  75. }
  76. cout << endl;
  77.  
  78. //big sorting
  79. for (int m = 0; m < j; m++) {
  80. for (int i = 0; i < j; i++) {
  81. if (array2[i][m] < 0)
  82. {
  83. break;
  84. } else if (i == j- 1) {
  85. //sorting
  86. for (int k = 0; k < j; k++) {
  87. for (int l = 1; l < j - k; l++) {
  88. if (array2[l][m] < array2[l - 1][m]) {
  89. swap(array2[l][m], array2[l - 1][m]);
  90. }
  91. }
  92. }
  93. //showing sorted
  94. cout << m+1 << ": ";
  95. for (int k = 0; k < j ; k++) {
  96. cout << array2[k][m] << "\t";
  97. }
  98. cout << endl;
  99. }
  100. }
  101. }
  102.  
  103.  
  104. }
Advertisement
Add Comment
Please, Sign In to add comment