2
Ich versuche, 10 Zufallszahlen zu generieren und sie zu sortieren. Aber sie werden nicht sortiert.Blasensortierung in C nicht sortiert
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main()
{
int c, d, swapped, temp;
int numb[10];
time_t t;
srand(time(&t));
for (c=0; c<10; c++)
{
numb[c] = (rand() % 100) + 1;
}
printf("Before sorting:");
for (c=0; c<10; c++){
printf("%d\n", numb[c]);
}
for (c=0; c<10; c++)
{
swapped = 0;
for (d=0; d < 9 - c; d++)
{
if (numb[d] > numb[d+1])
{
temp = numb[d];
numb[d] = numb[d+1];
numb[d] = temp;
swapped = 1;
}
}
if (swapped == 0)
{
break;
}
}
printf("\nAfter sorting:\n");
for (c=0; c<10; c++)
{
printf("%d\n", numb[c]);
}
return 0;
}
Ich kann nicht scheinen, herauszufinden, warum diese Art nicht funktioniert. In der Tat, erstaunt es einfach die gleiche Liste. Kann jemand darauf hinweisen, wo ich einen Fehler gemacht habe?
'srand (time (&t));' -> 'srand (time (NULL));' - Sie dann kann das 'time_t t' entfernen; –
Können Sie erklären, was der Unterschied ist? – 5areductase
Sparen Sie einfach auf eine Variable, die nicht erforderlich ist. –