Сортировка массива в функции - 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
, которая завершает выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д