Ан
Анна

Язык СИ. Массивы Ребят, как на Си написать сортировку массива от меньшего к большему?



Спасибо))

ЕР
Евгений Румянцев

#include
#include
void print(int*, size_t);
int compare(const void*, const void*);
int main(void) {
int a[] = { 2, 51, 4, 7, 8, 9, 38, 15, 48, 6, 87, 65, 1, 24, 96, 5, 14 };
size_t s = sizeof(a) / sizeof(int);
print(a, s);
qsort(&a[0], s, sizeof(int), compare);
print(a, s);
getchar();
return 0;
}
void print(int* a, size_t n) {
size_t i;
for (i = 0; i < n; ++i) printf("%4i", a[i]);
printf("\n");
}
int compare(const void* a, const void* b) {
if ((*(int *)a > *(int *)b)) return 1;
else if ((*(int *)a < *(int *)b)) return -1;
return 0;
}

МК
Маргарита Кочерышкина

Сортировок море. Например, в простом случае, можно "пузырьком".

ДМ
Дамира Мавлянова

Или так можно. С функциями. )
============================
#include
#include
#include
#include

void create(int ar[], int n);
void display(int ar[], int n);
void sort(int ar[], int n);

int main()
{
srand(time(0));

const int N = 10;
int ar[N];

create(ar,N);
display(ar,N);
sort(ar,N);
display(ar,N);

getch();
}

void create(int a[],int n)
{
int b = 1, c = 20;
for(int i(0); i < n; i++)
a[i] = rand() % (c - b + 1) + b;
}

void display(int a[], int n)
{
for(int i(0); i < n; i++)
printf("%-5d",a[i]);
printf("\n");
}

void sort(int a[], int n)
{
int temp;
for(int i(0); i < n-1; i++)
for(int j(1); j < n; j++)
if(a[j] < a[j-1]){
temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}

Похожие вопросы
помогите пожалуйста с массивом на языке Си++
язык си, одномерные массивы
помогите с сортировкой на Си
Pascal. Сортировка массива символов
Сортировка Структур по Алфавиту (Язык Си)
Сортировка Шелла на Си
Сортировка Массива
Сортировка массива на языке C# с использованием процедур.
Сортировка массива. Язык С (Подробнее внутри)
Сортировка массива вставкой.