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: