Advertisement
Guest User

Untitled

a guest
Mar 26th, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.62 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define N 7
  5. /*
  6. В массиве Х(N) упорядочить элементы по убыванию,
  7. расположенные между максимальным и минимальным элементами
  8. */
  9.  
  10. int main()
  11. {
  12. int arr[N];
  13. int max = 0;
  14. int min = 100;
  15. int ind1, ind2, temp;
  16.  
  17. srand(time(NULL));
  18.  
  19. int i, j;
  20.  
  21. //Заполняем массив
  22. for(i = 0; i < N; i++)
  23. {
  24. arr[i] = rand() % 99;
  25. }
  26.  
  27.  
  28. //Отрисовываем
  29. for(i = 0; i < N; i++)
  30. {
  31. printf("%d ", arr[i]);
  32. }
  33.  
  34. printf("\n");
  35.  
  36. //Находим на каких элементах макс и мин элементы
  37. for(i = 0; i < N; i++)
  38. {
  39. if(arr[i] > max)
  40. {
  41. max = arr[i];
  42. ind1 = i;
  43. }
  44. else if(arr[i] < min)
  45. {
  46. min = arr[i];
  47. ind2 = i;
  48. }
  49. }
  50.  
  51. if(ind1 > ind2)//Если минимум перед максимумом
  52. {
  53. if(ind1 == ind2 + 1 )//Если макс и мин элементы соседние
  54. {
  55. printf("There's nothing to sort between elements\n");
  56. }
  57. else if(ind1 - ind2 - 1 == 1 || ind2 - ind1 - 1 == 1)//Если между макс и мин только 1 элемент
  58. {
  59. printf("There's only one element to sort\n");
  60. }
  61. else
  62. {
  63. //Сортируем в порядке убывания
  64. for(i = ind2 + 1; i < ind1 - 1; i++)
  65. {
  66. if(arr[i] < arr[i + 1])
  67. {
  68. temp = arr[i];
  69. arr[i] = arr[i + 1];
  70. arr[i + 1] = temp;
  71. }
  72. }
  73. printf("\n");
  74.  
  75. //Отрисовываем отсортированный массив
  76. for(i = ind2 + 1; i < ind1; i++)
  77. {
  78. printf("%d ", arr[i]);
  79. }
  80. printf("\n");
  81. }
  82.  
  83. }
  84. else if(ind2 > ind1)//Если минимум после максимума
  85. {
  86. if(ind2 == ind1 + 1)//Если макс и мин элементы соседние
  87. {
  88. printf("There's nothing to sort between elements\n");
  89. }
  90. else if(ind1 - ind2 - 1 == 1 || ind2 - ind1 - 1 == 1)//Если между макс и мин только 1 элемент
  91. {
  92. printf("There's only one element to sort\n");
  93. }
  94. else
  95. {
  96.  
  97. for(i = ind1 + 1; i < ind2; i++)
  98. {
  99. if(arr[i] < arr[i + 1])
  100. {
  101. temp = arr[i];
  102. arr[i] = arr[i + 1];
  103. arr[i + 1] = temp;
  104. }
  105. }
  106. printf("\nSorted array\n");
  107.  
  108. //Отрисовываем отсортированный массив
  109. for(i = ind1 + 1; i < ind2; i++)
  110. {
  111. printf("%d ", arr[i]);
  112. }
  113. printf("\n");
  114. }
  115.  
  116. }
  117.  
  118. printf("Minimum is %d with index %d\n", min, ind2);
  119. printf("Maximum is %d with index %d\n", max, ind1);
  120.  
  121. return 0;
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement