Я писал сортировку выбора, и она не сортируется должным образом, иногда она работает, но в большинстве случаев одно или два числа неуместны. Предполагается распечатать массив чисел, отсортировать эти числа, а затем распечатать их снова. Он работает в режиме отладки, но всякий раз, когда я запускаю его регулярно, именно тогда начинаются проблемы.
Примечание. Если вам интересно, почему в начале есть какое-то время l oop, это потому что я буду работать над его повторением позже.
Код:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <time.h>
int print(int array[4]);
int main(void)
{
bool loop = true;
//main loop
while (loop)
{
//array
int array[5];
//assign numbers
int seconds= time(NULL);
printf("%d\n", seconds);
srand(seconds);
for(int i = 0; i <= 4; i++)
{
//random number between 0 and 5
int r = rand();
array[i] = r % 6;
}
//print numbers
for(int i = 0; i <= 4; i++)
{
printf("%d ", array[i]);
}
printf("\n");
//sort
int temp;
for(int i = 0; i <= 4; i++)
{
//set minimum
int min = array[i];
//check minimum value
for(int j = i + 1; j <= 4; j++)
{
if(min > array[j])
{
min = array[j];
temp = j;
}
}
//swap minimum values
int first = array[i];
array[i] = min;
array[temp] = first;
}
for(int i = 0; i <= 4; i++)
{
printf("%d ", array[i]);
}
printf("\n");
return 0;
}
}
int print(int array[4])
{
return 0;
}
Пример вывода:
1584216938
3 5 1 4 1
1 1 3 3 4