Daiana Geschrieben 9. Februar 2004 Geschrieben 9. Februar 2004 Hallo ihr Lieben, nachdem ich beim letzten Mal gedacht hatte, ich hätte es endlich kapiert, stehe ich bei mehrdimensionalen Feldern wieder vor einem ähnlichen Problem, wie bei meinem entzückenden Array. Ich wollte den Ratschlag vom letzten Mal befolgen und habe versucht, bevor ich irgendwas weiteres gemacht habe, meine Felder mit 0 zu initialisieren. Als ich dann testweise den Wert von einiegen Feldern ausgeben wollte, kamen völlig kryptische Zahlen heraus, die mit 0 überhaupt gar nichts mehr zu tun haben, ausser der Tatsache, dass es eben Zahlen sind Hier mein Versuch: #include <iostream.h> #include <stdlib.h> int main(void) { int feld [4][17], x=0, y=0; //Initialisierung des Feldes mit 0: for (x==0; x==3; ++x) { for (y==0; y==16; ++y) { feld[x][y]=0; } y=0; } cout <<"Feld 1"<<feld[0][0]<<"ende"<<endl; cout <<"Feld 2"<<feld[2][6]<<"ende"<<endl; cout <<"Feld 3"<<feld[3][15]<<"ende"<<endl; system("PAUSE"); return 0; } Ich finde einfach keinen Fehler. Eigentlich müsste er doch die Schleife durchlaufen und jedem Feld den Wert 0 zuweisen, oder???:confused: Wäre euch superdankbar, wenn ihr mir mal wieder auf die Sprünge helfen würdet. Danke für eure Geduld im Vorraus, Dai Zitieren
Nokinger Geschrieben 9. Februar 2004 Geschrieben 9. Februar 2004 Hi mach mal: for (x=0;x==3;x++) { } for (y=0;y==16;y++) {} Nok Zitieren
Daiana Geschrieben 9. Februar 2004 Autor Geschrieben 9. Februar 2004 Bringt auch nichts. Habs mal versucht und er wirft mir die gleichen komischen Zahlen aus. Aber danke. Zitieren
Klotzkopp Geschrieben 9. Februar 2004 Geschrieben 9. Februar 2004 Die Schleife wird ausgeführt, solange (nicht bis) die Bedingung wahr ist: for (x=0;x<=3;++x) for (y=0;y<=16;++y) [/CODE] @Nokinger: Wenn es egal ist, ob man Prä- oder Postinkrement verwendet, sollte man sich Präinkrement angwöhnen. Zitieren
MeisterB Geschrieben 9. Februar 2004 Geschrieben 9. Februar 2004 Deine For-Schleifen sind falsch sie müssen so: for(x=0;x<=3;x++) for(y=0;y<=16;y++) aussehen. In deiner Variante ist die Abbruchbedingung x==3 bzw. y==16 also würde die Schleife solange durchlaufen werden wie x den Wert 3 und y den Wert 16 besitzt. Da du ihnen aber den Wert 0 zugewiesen hast sind diese Bedinungen nicht erfüllt und die Schleife wird garnicht erst durchlaufen. Da war wohl jemand schneller Zitieren
Daiana Geschrieben 9. Februar 2004 Autor Geschrieben 9. Februar 2004 hey, das funzt:uli :uli Was sind Prä- oder Postinkremente? Nur aus Interesse. Danke für die schnelle Hilfe. Das ist superlieb von euch. :hodata :e@sy :marine :bimei :OD Zitieren
MeisterB Geschrieben 9. Februar 2004 Geschrieben 9. Februar 2004 Man unterscheidet Präfix- (++a) und Postfixnotation (a++). Präfixnotation: b = ++a; Es wird zuerst a um 1 erhöht und dann b zugewiesen Postfixnotation: b = a++; Es wird zuerst b der Wert von a zugewiesen und danach a um 1 erhöht Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.