C-Programm: Array zählt nicht richtig hoch

akinna

Grünschnabel
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:
#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;
}
 
Du wendest die Indexierung der Array nicht korrekt an.
Wenn du ein Array hast z.B: "int array[2]", dann ist dieses Array 2 Felder groß, das beduetet
"array[0]" und "array[1]" sind gültige Elemente, "array[2]" aber nicht, da dies bereits das 3. Element darstellen würde.
anstatt von
Code:
for (matrix=1;matrix<=matrizen;matrix++)
müsstest du
Code:
for (matrix=0;matrix<matrizen;matrix++)
Das gilt für die anderen For schleifen auch.
Verändert hab ich den Start Punkt auf 0 und die Abbruch bedienungn.

mfg
SGSSGene
 
Zurück