Alles anzeigenint loop2;
for(loop2=0;loop2<size;loop2++)
{
printf("%d",array[loop2]);
}
while(loop2<size)
{
printf("%d",array[loop2]);
loop2++;
}
Also als 1. du resettest nicht die Variable loop2 (also setzt diese nicht wieder auf 0 vor der while Schleife
2. Wieso nutzt du da eine while-Schleife? Die Aufgabe ist perfekt für eine for-Schleife?
3. Wieso nutzt du da überhaupt noch eine Schleife? Schließlich steht das 1:1 über der While - Schleife..du hast da 2x den selben Code...
Und du verwendest wieder C99 Stil...lass doch mal Variablen-Deklarationen aus den Schleifen ![]()
Hier, schreib es so:
C
int main()
{
int size=0,loop,qrand;
int *array;
printf("Array-Groesse eingeben: ");
scanf("%d", &size);
// Allocate memory
array = (int *) malloc(size * sizeof(int));
if(array != NULL)
{
printf("\nSpeicher ist reserviert\n");
printf("\nFilling array.\n");
for(loop=0;loop<size;loop++)
{
qrand=rand() %20;
array[loop]=qrand;
printf("%d",qrand);
}
}
else printf("\nKein freier Speicher vorhanden.\n");
heapsort(array,size);
for(loop=0;loop<size;loop++)
{
printf("%d",array[loop]);
}
printf("\nSpeicher ist freigegeben\n");
free(array);
return 0;
}
Alles anzeigen