Определить позицию наименьшего числа и наибольшего числа и произвести сортировку - 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); }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с I/O и объявляем функцию main.
- Объявляем переменные i, j, k, imax,imin, min, max, x и выделяем память под массив ar2.
- Инициализируем первое число в массиве ar2 как наименьшее и наибольшее число.
- Проходим по всем элементам массива ar2 и обновляем значения min и max при необходимости.
- Находим индекс наименьшего числа и наибольшего числа в массиве.
- Проходим по всем элементам массива ar2, начиная с индекса наименьшего числа и до индекса наибольшего числа, исключая границы.
- Внутренний цикл проходит по всем элементам, начиная с текущего индекса и ищет элемент, который нужно поменять местами с текущим элементом.
- По завершении внутреннего цикла, производим обмен элементов.
- Выводим отсортированный массив ar2 на экран.
- Возвращаем 0, чтобы указать, что программа успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д