Сортировка массива в функции - C (СИ)
Формулировка задачи:
Дан массив, int ar[10] = {4,7,2,9,12,32,6,74,1,5} необходимо сделать сортировку массива в функции. В функцию необходимо передавать три параметра - массив, количество элементов и переключатель(0 или 1). Если переключатель установлен в 0 тогда сортировать от большего числа к меньшему, если в 1 тогда от меньшего к большему.
Решение задачи: «Сортировка массива в функции»
textual
Листинг программы
void sort(int* ar,int n,int up) { int i,j,x; for(i=n-1; i; i--) for(j=0; j<i; j++) if(up && ar[j]>ar[j+1] || !up && ar[j]<ar[j+1]) { x=ar[j]; ar[j]=ar[j+1]; ar[j+1]=x; } } void main(int argc,char* argv[]) { int i, n=10, ar[] = {4,7,2,9,12,32,6,74,1,5}; sort(ar,n,0); for(i=0; i<n; i++) printf("%d ",ar[i]); printf("\n"); sort(ar,n,1); for(i=0; i<n; i++) printf("%d ",ar[i]); printf("\n"); system("pause"); }
Объяснение кода листинга программы
- Объявлены функции:
sort
,main
. - В функции
main
инициализирован массивar
десятью значениями. - В функции
main
вызваны две функции:sort
иprintf
. - В функции
sort
три вложенных цикла, которые выполняют сортировку массива. - В функции
main
после сортировки выводится отсортированный массив. - В функции
main
после сортировки массива с помощью функцииsort
второй раз с параметромup=1
. - В функции
main
выводится отсортированный массив второй раз. - В функции
main
вызывается функцияsystem
, которая приостанавливает выполнение программы до нажатия клавиши. - В функции
main
нет оператораreturn
, поэтому возвращаемый функциейmain
результат будетint main()
. - В функции
sort
происходит сортировка массива методом пузырька. - В функции
sort
параметрup
при инициализации имеет значение0
. - В функции
sort
параметрup
при инициализации имеет значение1
. - В функции
sort
переменнаяi
имеет значениеn-1
при первом вложенном цикле. - В функции
sort
переменнаяj
имеет значение0
при первом вложенном цикле. - В функции
sort
переменнаяj
имеет значениеi-1
при первом вложенном цикле. - В функции
sort
условиеup && ar[j]>ar[j+1] || !up && ar[j]<ar[j+1]
сортирует массив по возрастанию. - В функции
sort
условиеup && ar[j]>ar[j+1] || !up && ar[j]<ar[j+1]
сортирует массив по убыванию. - В функции
sort
используется операторprintf
для вывода значений переменных. - В функции
main
используется операторprintf
для вывода значений переменных. - В функции
main
вызывается функцияsystem
, которая завершает выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д