Zahlen im Array sortieren

Skyraz00

Grünschnabel
Hallo, ich habe ein kleines Problem. Ich habe ein Programm SelectionSort geschrieben das Zahlen in einem Array sortiert und dann ausgibt, jetzt will ich das es zufällige zahlen benutzt. Aber irgendwie gibt der die Zahlen zwar aus aber bricht dann ab, wenn er die dann sortieren soll.

C++:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    srand(time(NULL));
    int zahl[1000] = { 0 };
    int i;
    int c;
    int d;
    int position;
    int swap;
   for (i = 0; i <= 1000; i++)
    {
        *(zahl + i) = rand() % 100 + 1;
    }
    printf("Zufallszahlen\n");
       
    for (i = 0; i <1000; i++)
    {
        printf("Zahl %d : %d\n", i + 1, zahl[i]);
    }
    //printf("Anzahl der zu sortiernden Elemente\n");
    //scanf_s("%d", &n);
    //printf("Gib %d Zahlen ein\n", n);
    for (c = 0; c < i; c++)
        scanf_s("%d", &zahl[c]);
    for (c = 0; c < (i - 1); c++)
    {
        position = c;
        for (d = c + 1; d < i; d++)
        {
            if (zahl[position] > zahl[d])
                position = d;
        }
        if (position != c)
        {
            swap = zahl[c];
            zahl[c] = zahl[position];
            zahl[position] = swap;
        }
    }
    printf("Liste der aufsteigend sortierten Elemente:\n");
    for (c = 0; c < i; c++)
        printf("%d\n", zahl[c]);
    return 0;
}
 
zahl hat für 1000 Elemente Platz, [0, 1000[

Du füllst aber von i=0 bis i <=1000, also [0, 1000].
=> Stackoverflow => Absturz.

Gruss
cwriter
 
Zurück