Создание самосортирующегося массива и функции для него - C (СИ)
Формулировка задачи:
здравствуйте. надо написать функцию создания самосортирующегося массива, то есть задается количество элементов и предел, далее рандомом создаем массив а потом сортируем с помощью быстрой сортировки. я вроде бы сделал но выдает ошибки которые я не могу исправить
ошибки
C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib\libmingw32.a(lib64_libmingw32_a-crt0_c.o) In function `main':
18 h:\crossdev\src\mingw-w64-v3-svn\mingw-w64-crt\crt\crt0_c.c undefined reference to `WinMain'
C:\Users\sport\Documents\Новая папка\collect2.exe [Error] ld returned 1 exit status
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int compare(const void*a, const void*b){
return *(int*)a-*(int*)b;
};
void CreateMas(int n, int k){
int i;
int*m=(int*)malloc(n*sizeof(int));
srand(time(NULL));
for(i=0; i<n; i++){
m[i]=rand()%(k);
};
qsort(m, n, sizeof(int), compare);
for(i=0; i<n; i++){
printf("%d\n", m[i]);
};
};Решение задачи: «Создание самосортирующегося массива и функции для него»
textual
Листинг программы
#include <stdio.h>
#include<stdlib.h>
#include<time.h>
int compare(const void*a, const void*b)
{
return *(int*)a - *(int*)b;
}
void CreateMas(int n, int k)
{
int i;
int*m = (int*)malloc(n*sizeof(int));
srand((unsigned int)time(NULL));
for (i = 0; i<n; i++)
m[i] = rand() % (k);
qsort(m, n, sizeof(int), compare);
for (i = 0; i<n; i++)
printf("%d ", m[i]);
printf("\n");
}
int main()
{
CreateMas(10,10);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с массивами, функциями и временем.
- Создание функции сравнения, которая будет сравнивать два указателя на int.
- Создание функции для создания массива заданного размера с помощью генератора случайных чисел и сортировки его с помощью функции qsort и нашей функции сравнения.
- Вывод отсортированного массива на экран.
- Вызов функции создания массива в функции main с заданными параметрами.
- Завершение работы программы.