Определить позицию наименьшего числа и наибольшего числа и произвести сортировку - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дан массив, int ar2[15] = {4,7,2,1,9,12,32,6,5,74,69,11,3,60,17} Необходимо определить позицию наименьшего числа и наибольшего числа и произвести сортировку от позиции наименьшего до позиции наибольшего. Например, в массиве ar2 наименьшее число - 1 индекс(позиция) - 3, а наибольшее 74 индекс - 9. Необходимо сделать сортировку от 3 индекса до 9, остальные числа не сортировать.

Решение задачи: «Определить позицию наименьшего числа и наибольшего числа и произвести сортировку»

textual
Листинг программы
#include <stdio.h>
int main(void){
  int i,j,k,imax=0,imin=0,min,max,x;
    int ar2[15] = {4,7,2,1,9,12,32,6,5,74,69,11,3,60,17};
    min=ar2[0]; max=ar2[0];
    for(i=0;i<15;i++){
      if(ar2[i]<min){imin=i;min=ar2[i];}
        if(ar2[i]>max){imax=i;max=ar2[i];}
                     }
    for(i=imin+1;i<imax-2;i++){
       k=i; x=ar2[i];
      for(j=i+1;j<imax;j++){
         if(ar2[j]<x){x=ar2[j]; k=j;}
                           }
        ar2[k]=ar2[i]; ar2[i]=x;
                              }
    for(i=0;i<15;i++){printf("%d ",ar2[i]);}
    return(0);
 }

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы для работы с I/O и объявляем функцию main.
  2. Объявляем переменные i, j, k, imax,imin, min, max, x и выделяем память под массив ar2.
  3. Инициализируем первое число в массиве ar2 как наименьшее и наибольшее число.
  4. Проходим по всем элементам массива ar2 и обновляем значения min и max при необходимости.
  5. Находим индекс наименьшего числа и наибольшего числа в массиве.
  6. Проходим по всем элементам массива ar2, начиная с индекса наименьшего числа и до индекса наибольшего числа, исключая границы.
  7. Внутренний цикл проходит по всем элементам, начиная с текущего индекса и ищет элемент, который нужно поменять местами с текущим элементом.
  8. По завершении внутреннего цикла, производим обмен элементов.
  9. Выводим отсортированный массив ar2 на экран.
  10. Возвращаем 0, чтобы указать, что программа успешно завершилась.

Оцени полезность:

10   голосов , оценка 4.1 из 5
Похожие ответы