Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- #define N 7
- /*
- В массиве Х(N) упорядочить элементы по убыванию,
- расположенные между максимальным и минимальным элементами
- */
- int main()
- {
- int arr[N];
- int max = 0;
- int min = 100;
- int ind1, ind2, temp;
- srand(time(NULL));
- int i, j;
- //Заполняем массив
- for(i = 0; i < N; i++)
- {
- arr[i] = rand() % 99;
- }
- //Отрисовываем
- for(i = 0; i < N; i++)
- {
- printf("%d ", arr[i]);
- }
- printf("\n");
- //Находим на каких элементах макс и мин элементы
- for(i = 0; i < N; i++)
- {
- if(arr[i] > max)
- {
- max = arr[i];
- ind1 = i;
- }
- else if(arr[i] < min)
- {
- min = arr[i];
- ind2 = i;
- }
- }
- if(ind1 > ind2)//Если минимум перед максимумом
- {
- if(ind1 == ind2 + 1 )//Если макс и мин элементы соседние
- {
- printf("There's nothing to sort between elements\n");
- }
- else if(ind1 - ind2 - 1 == 1 || ind2 - ind1 - 1 == 1)//Если между макс и мин только 1 элемент
- {
- printf("There's only one element to sort\n");
- }
- else
- {
- //Сортируем в порядке убывания
- for(i = ind2 + 1; i < ind1 - 1; i++)
- {
- if(arr[i] < arr[i + 1])
- {
- temp = arr[i];
- arr[i] = arr[i + 1];
- arr[i + 1] = temp;
- }
- }
- printf("\n");
- //Отрисовываем отсортированный массив
- for(i = ind2 + 1; i < ind1; i++)
- {
- printf("%d ", arr[i]);
- }
- printf("\n");
- }
- }
- else if(ind2 > ind1)//Если минимум после максимума
- {
- if(ind2 == ind1 + 1)//Если макс и мин элементы соседние
- {
- printf("There's nothing to sort between elements\n");
- }
- else if(ind1 - ind2 - 1 == 1 || ind2 - ind1 - 1 == 1)//Если между макс и мин только 1 элемент
- {
- printf("There's only one element to sort\n");
- }
- else
- {
- for(i = ind1 + 1; i < ind2; i++)
- {
- if(arr[i] < arr[i + 1])
- {
- temp = arr[i];
- arr[i] = arr[i + 1];
- arr[i + 1] = temp;
- }
- }
- printf("\nSorted array\n");
- //Отрисовываем отсортированный массив
- for(i = ind1 + 1; i < ind2; i++)
- {
- printf("%d ", arr[i]);
- }
- printf("\n");
- }
- }
- printf("Minimum is %d with index %d\n", min, ind2);
- printf("Maximum is %d with index %d\n", max, ind1);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement