Расположить элементы массива в порядке возрастания и в порядке убывания - C (СИ)
Формулировка задачи:
Здравствуйте! Начинаю изучать Си, нужно написать простенькую программу. Мне рассказали про функцию swap, но я не знаю, как применить ее в языке Си (есть только образец для Си++). Вот мой код, подскажите, пожалуйста, где функцию swap объявить и как:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i = 0, j = 0, m[10];
printf ("Vvedite elementi massiva cherez ENTER: ");
for (i = 0; i <= 9; i++)
scanf ("%d",&m[i]);
for (i = 9; i >= 1; i--)
{
for (j = 0; j <= i; j++)
{
if ((m[i]<m[j]) swap(&m[i], &m[j]));
}
}
printf ("V poryadke vozrastania: ");
for (i = 0; i <= 9; i++)
printf ("%d", m[i]);
printf ("\n V poryadke ubivania: ");
for (i = 9; i >= 0; i--)
printf ("%d", m[i]);
getch ();
return 0;
}Решение задачи: «Расположить элементы массива в порядке возрастания и в порядке убывания»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int i = 0, j = 0, m[10];
void swap(int*m[i],int*m[j])
{
int t=*m[i];
*m[i]=*m[j];
*m[i]=t;
}
int main()
{
printf ("Vvedite elementi massiva cherez ENTER: ");
for (i = 0; i <= 9; i++)
{
scanf ("%d",&m[i]);
}
for (i = 9; i >= 1; i--)
{
for (j = 0; j <= i; j++)
{
if ((m[i]<m[j]) swap(&m[i], &m[j]));
}
}
printf ("V poryadke vozrastania: ");
for (i = 0; i <= 9; i++)
{
printf ("%d", m[i]);
}
printf ("\n V poryadke ubivania: ");
for (i = 9; i >= 0; i--)
{
printf ("%d", m[i]);
}
getch ();
return 0;
}
Объяснение кода листинга программы
В этом коде реализована сортировка массива методом сортировки пузырьком. Вот список действий, которые происходят в коде:
- Сначала объявляются переменные:
iиj- используются для обозначения индексов элементов массива во время сортировки;m- массив, который нужно отсортировать.
- Затем происходит чтение элементов массива с помощью функции
scanf(). - Далее начинается сортировка. Внешний цикл идет от последнего элемента массива к первому, а внутренний - от текущего элемента к предыдущему. Если текущий элемент больше следующего, они меняются местами с помощью функции
swap(). - После сортировки происходит вывод отсортированного массива в порядке возрастания и в порядке убывания с помощью функции
printf(). - В конце программы вызывается функция
getch(), которая ожидает нажатия клавиши, и функцияreturn 0;, которая завершает работу программы.