Задание на языке Си.
Дана размерность одномерного массива size<=50, состоящего из целочисленных элементов. Ввести элементы массива с клавиатуры, упорядочить по возрастанию, использовав пользовательскую функцию.
C/C++
Упорядочить элементы массива по возрастанию на языке Си
#include <stdio.h>
#include <unistd.h>
void quicksort (int [], int, int);
int main()
{
int list[50];
int size, i;
printf("Enter the number of elements: ");
scanf("%d", &size);
printf("Enter the elements to be sorted:\n");
for (i = 0; i < size; i++)
{
scanf("%d", &list[i]);
}
quicksort(list, 0, size - 1);
printf("Quick sort:\n");
for (i = 0; i < size; i++)
{
printf("%d ", list[i]);
}
printf("\n");
sleep(10);
return 0;
}
void quicksort(int list[], int low, int high)
{
int pivot, i, j, temp;
if (low < high)
{
pivot = low;
i = low;
j = high;
while (i < j)
{
while (list[i] <= list[pivot] && i <= high)
{
i++;
}
while (list[j] > list[pivot] && j >= low)
{
j--;
}
if (i < j)
{
temp = list[i];
list[i] = list[j];
list[j] = temp;
}
}
temp = list[j];
list[j] = list[pivot];
list[pivot] = temp;
quicksort(list, low, j - 1);
quicksort(list, j + 1, high);
}
}

#include <unistd.h>
void quicksort (int [], int, int);
int main()
{
int list[50];
int size, i;
printf("Enter the number of elements: ");
scanf("%d", &size);
printf("Enter the elements to be sorted:\n");
for (i = 0; i < size; i++)
{
scanf("%d", &list[i]);
}
quicksort(list, 0, size - 1);
printf("Quick sort:\n");
for (i = 0; i < size; i++)
{
printf("%d ", list[i]);
}
printf("\n");
sleep(10);
return 0;
}
void quicksort(int list[], int low, int high)
{
int pivot, i, j, temp;
if (low < high)
{
pivot = low;
i = low;
j = high;
while (i < j)
{
while (list[i] <= list[pivot] && i <= high)
{
i++;
}
while (list[j] > list[pivot] && j >= low)
{
j--;
}
if (i < j)
{
temp = list[i];
list[i] = list[j];
list[j] = temp;
}
}
temp = list[j];
list[j] = list[pivot];
list[pivot] = temp;
quicksort(list, low, j - 1);
quicksort(list, j + 1, high);
}
}

#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#define BUFFER 50
void swap(int* a, int* b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
void sort(int* box, int size) {
int i, j;
for (i = 0; i < size - 1; i++)
for (j = i + 1; j < size; j++)
if (box[i] > box[j])
swap(&box[i], &box[j]);
}
void fill(int* box, int size) {
int i;
srand((unsigned)time(NULL));
for (i = 0; i < size; ++i) box[i] = 1 + rand() % BUFFER;
}
void show(int* box, int size) {
int i;
for (i = 0; i < size; ++i) printf("%4i", box[i]);
puts("");
}
int set_size() {
int size;
int i = 0;
do {
if (i) puts("Range: 1 ...50");
printf("Size: ");
scanf_s("%i", &size);
++i;
} while (size < 1 || size > BUFFER);
return size;
}
int main(void) {
int box[BUFFER];
int size = set_size();
fill(box, size);
show(box, size);
sort(box, size);
show(box, size);
system("pause > nul");
return 0;
}
#include <time.h>
#include <stdio.h>
#define BUFFER 50
void swap(int* a, int* b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
void sort(int* box, int size) {
int i, j;
for (i = 0; i < size - 1; i++)
for (j = i + 1; j < size; j++)
if (box[i] > box[j])
swap(&box[i], &box[j]);
}
void fill(int* box, int size) {
int i;
srand((unsigned)time(NULL));
for (i = 0; i < size; ++i) box[i] = 1 + rand() % BUFFER;
}
void show(int* box, int size) {
int i;
for (i = 0; i < size; ++i) printf("%4i", box[i]);
puts("");
}
int set_size() {
int size;
int i = 0;
do {
if (i) puts("Range: 1 ...50");
printf("Size: ");
scanf_s("%i", &size);
++i;
} while (size < 1 || size > BUFFER);
return size;
}
int main(void) {
int box[BUFFER];
int size = set_size();
fill(box, size);
show(box, size);
sort(box, size);
show(box, size);
system("pause > nul");
return 0;
}
Похожие вопросы
- С++. Упорядочить строки массива A в порядке убывания сумм цифр первого элемента каждой строки.
- Язык Си. Сортировка и поиск элементов массива
- Можно ли через функцию memset записать число в элемент массива больше чем 255? (Си)
- Заменить нулями элементы массива, которые расположены между первым минимальным и последним максимальным элементами масси
- Помогите добавить ввод чисел в массив матрицы на языке Си
- Создать одномерный массив, состоящий из n вещественных элементов. Элементы массива определить при помощи случайных чисел
- Как ввести строчный массив через scanf_s в языке Си
- Как обработать этот массив на языке Си?
- Одномерные массивы на языке си
- Массивы в языке Си