Matrizen
-
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { system("color 02"); const int dim1 = 2, dim2 = 10; int matrix [dim1][dim2] = {{1,2,3,4,5,6,7,8,9,10},{11,12,13,14,15,16,17,18,19,20}}; cout << matrix [dim1][dim2] << " "; cout << endl; cin.get(); return 0; }
Das ergibt einen merkwürdigen Wert aus (40...) bla
wie funzt den das jetzt genau ?
Ich hab noch nie ne Matrix gebraucht, und jetzt fragt mich ein Freund, aber
ich konnte ihm da jetzt nicht helfen
-
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { system("color 02"); const int dim1 = 2, dim2 = 10; int matrix [dim1][dim2] = {{1,2,3,4,5,6,7,8,9,10},{11,12,13,14,15,16,17,18,19,20}}; cout << matrix [dim1][dim2] << " "; cout << endl; cin.get(); return 0; }
versuch es mal so:
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { system("color 02"); const int dim1 = 2, dim2 = 10; int matrix [dim1][dim2] = {{1,2,3,4,5,6,7,8,9,10},{11,12,13,14,15,16,17,18,19,20}}; for (int i = 0; i < dim1; i++) for (int j = 0; j < dim2; j++) cout << matrix [i][j] << " "; cout << endl; cin.get(); return 0; }
dann werden auch alle Werte ausgegeben, aber ich verstehe die Frage nicht?
-
Du greifst auf ein Element ausserhalb der Arraygrenzen zu. Ein Array in C++ der Dimension n geht von 0..n-1. Um auf das Element "rechts unten" deiner Matrix zuzugreifen, musst du also:
cout << matrix [dim1-1][dim2-1] << " ";
schreiben.
-
wusste ichs doch !
Ist überall so von 0 bis n
-
Tim06TR schrieb:
wusste ichs doch !
Ist überall so von 0 bis n0 bis n-1
-
Allgemein gilt für Arrays
MaxIndex = Größe - 1;
Daher wenn du ein Array:
int i[GROESSE]; // anlegst i[GORESSE - 1]; // (GORESSE - 1) ist der letzte Index
Das kommt daher weil du den den Index bei 0 beginnst, du legst ja auch ein Array nicht so an:
(ganz falsch) int i[0]
sondern
(richtig) int i[1]
und zugreifen tust du mit
(richtig) i[0]; // MaxIndex = 1 - 1 = 0
und nicht mit
(ganz falsch) i[1]; // ist jetzt ausserhalb von MaxIndex
.
-
C++ Builder, MFC -> Ständige Konfrontation damit.
Und das mit 0 - n-1, PINGELICH, war doch ohne nachzudenken da higeplerrt.
In der Praxis würde ich diesen Fehler nie machen.
Nur bei den Matrizen war ich mir jetzt nicht 100% sicher.______________________________________________________
Hearing Very nice music now.