B
Endergebnis:
#include <iostream>
#include <cstdlib>
using namespace std;
int **newmatrix(int zeilen, int spalten);
void matrixwerte(int **matrix, int zeilen, int spalten);
void matrixausgeben(int **matrix, int zeilen, int spalten);
void matrixdelete(int **matrix, int zeilen);
Ihre Nachricht wurde erfolgreich eingetragen.
Hier klicken, um Ihre Nachricht anzuzeigen
Hier klicken, um zum Forum zurückzukehren
int main(void){
int zeilen, spalten;
int **matrix;
cout << "Wie viele Zeilen : ";
cin >> zeilen;
cout << "Wie viele Spalten: ";
cin >> spalten;
matrix = newmatrix(zeilen, spalten); // Speicher reservieren
matrixwerte(matrix, zeilen, spalten); // Initialisieren
matrixausgeben(matrix, zeilen, spalten); // Ausgeben
matrixdelete(matrix, zeilen); // Speicher freigeben
return EXIT_SUCCESS;
}
int **newmatrix(int zeilen, int spalten){
// Speicher für die einzelnen zeilenn reservieren
int **matrix;
matrix = new int* [zeilen];
// Speicher für die einzelnen spaltenn reservieren
for(int i = 0; i < zeilen; i++){
matrix[i] = new int [spalten];
}
return matrix;
}
void matrixwerte(int **matrix, int zeilen, int spalten){
for(int i = 0; i < zeilen; i++){
for(int j = 0; j < spalten; j++){
cout << "Eingabe des Elementes[" << i+1 << "][" << j+1 << "] : ";
cin >> matrix[i][j];
}
} cout << endl;
}
void matrixausgeben(int **matrix, int zeilen, int spalten){
cout << "Matrix:" << endl;
for(int i = 0; i < zeilen; i++){
for(int j = 0; j < spalten; j++){
cout << matrix[i][j] << " " ;
}
cout << endl;
}
}
void matrixdelete(int **matrix, int zeilen){
// spaltenn der i-ten zeilen freigeben
for(int i = 0; i < zeilen; i++){
delete [] matrix[i];
}
// Jetzt die leeren zeilenn freigeben
delete [] matrix;
}
Edit: Ich glaube ich habe ein paar Fehler dabei gemacht. Läuft nicht so wie es soll. Wenn ich z.B. ein Element z.B. matrix[0][3] ausgeben möchte kommt ein anderer Wert raus. Speicherproblem. Ich hoffe ihr könnt mir weiterhelfen
Es läuft alles mein Fehler hatte was falsches getippt.