Ich hatte einen Denkfehler im Code!
Der Zugriff auf Zeile i, Spalte j müsste so heißen:
cols repräsentiert die Anzahl der Spalten pro Zeile und
rows die Gesamtanzahl der Zeilen.
Sodass immer nach cols-Stellen eine neue Zeile kommt. Und in dieser Zeile musst du noch j-Stellen weitergehen.
Eigentlich könnte man die Ausgabe auch vereinfachen:
Du musst nur einen Index (als Zahl) angeben, bei dir ist es eben das Ergebnis der Rechenoperation.
Der Zugriff auf Zeile i, Spalte j müsste so heißen:
C++:
matrix[cols*i + j] = char(177);
rows die Gesamtanzahl der Zeilen.
Du musst dir vorstellen, dass die Matrix in einer Zeile/Reihe steht.Deine Bessere Variante ist super
das Prinzip der Verrechnung bei der Schreibweise verstehe ich leider noch nicht
matrix[rows*i + j];
Sodass immer nach cols-Stellen eine neue Zeile kommt. Und in dieser Zeile musst du noch j-Stellen weitergehen.
Eigentlich könnte man die Ausgabe auch vereinfachen:
C++:
/* Ausgabe */
for (int i=0; i<cols*rows; i++)
{
if (i!=0 && i%cols==0) // Wenn neue Zeile, neue Zeile anfangen ;)
{
cout << endl;
}
cout << matrix[i] << " ";
}
Wieso nicht?gibt es eigentlich eine Möglichkeit auf ein Array Feld zuzugreifen durch die Operation array[j-1] ?
Hat jetzt zwar nicht mit der dynamischen Eingabe zu tun, aber wenn wir schon mal beim Thema arrays sind![]()
Du musst nur einen Index (als Zahl) angeben, bei dir ist es eben das Ergebnis der Rechenoperation.
Zuletzt bearbeitet: