Сортировка массива в функции - 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, которая завершает выполнение программы.