C-Programm: Array zählt nicht richtig hoch

  • C-Programm: Array zählt nicht richtig hoch

    hallo zusammen,

    ich versuche mich zur zeit an einem programm zur berechnung von mathematischen matrizen, dabei soll
    jeder einzelne wert eingelsen udn in einem dreidimensionalen array abgelegt werden.
    leider bricht das programm aber schon nach der achten oder neunten eingabe ab und weist [matrix] den letzten wert von [spalte] zu. könnt ihr mir erklären warum? wäre super wenn mir jemand helfen kann. testweise hab ich dem programm mal eine ausgabe angehängt.

    annika

    [code:1]
    #include <stdio.h>

    #define matrizen 2
    #define zeilen 3
    #define spalten 3

    int matrix,zeile,spalte,hilf,werte[2][3][3];

    int main(void) {

    //EINGABE

    for (matrix=1;matrix<=matrizen;matrix++) {
    for (zeile=1;zeile<=zeilen;zeile++) {
    for (spalte=1;spalte<=spalten;spalte++) {
    printf("\nGeben Sie den Wert fuer Matrix %i, Zeile %i, Spalte %i
    ein: ",matrix,zeile,spalte);
    scanf("%i",&werte[matrix][zeile][spalte]);
    }
    }
    }

    matrix=0;
    zeile=0;
    spalte=0;

    // AUSGABE zum Testen

    for (matrix=1;matrix<=matrizen;matrix++) {
    for (zeile=1;zeile<=zeilen;zeile++) {
    for (spalte=1;spalte<=spalten;spalte++) {
    printf("%i %i %i",matrix,zeile,spalte);
    printf(": %i\n",werte[matrix][zeile][spalte]);
    }
    printf("\n");
    }
    printf("\n\n");
    }

    return 0;
    }
    [/code:1]
  • "cge" schrieb:

    hallo, versuche mal deine startwerte [code:1]for (matrix=1;matrix<=matrizen;matrix++) {
    for (zeile=1;zeile<=zeilen;zeile++) {
    for (spalte=1;spalte<=spalten;spalte++) { [/code:1]

    bei 0 zu beginnen, also matrix=0, zeile=0, spalte=0,

    Hi,

    Dann aber auch alle Endwerte entsprechend anpassen! Also z.B. statt matrix<=matrizen dann matrix<matrizen schreiben.

    @annika: Wenn du ein Array werte[10] definierst, liegen die Indizes im Bereich 0..9, nicht 1..10! Wenn du dann auf das Element mit dem Index 10 zugreifen willst, greifst du auf einen Speicherplatz außerhalb deiner Array-Struktur zu, und das führt zum Programmabbruch.


    Viele Grüße,

    Siracusa