Die transponierte Matrix ausgeben
In diesem letzten Schritt lernen Sie, wie Sie die transponierte Matrix mit verbesserter Lesbarkeit und Fehlerbehandlung formatieren und ausgeben. Wir erweitern das vorherige Programm, um die Ausgabe professioneller zu gestalten.
Öffnen Sie die Datei matrix_transpose.c:
cd ~/project
nano matrix_transpose.c
Ersetzen Sie den vorherigen Code durch die folgende verbesserte Implementierung:
#include <stdio.h>
#define MAX_ZEILEN 100
#define MAX_SPALTEN 100
void printMatrix(int matrix[MAX_ROWS][MAX_COLS], int zeilen, int spalten, const char* titel) {
printf("%s:\n", titel);
for (int i = 0; i < zeilen; i++) {
for (int j = 0; j < spalten; j++) {
printf("%4d ", matrix[i][j]);
}
printf("\n");
}
printf("\n");
}
int main() {
int zeilen, spalten;
int matrix[MAX_ZEILEN][MAX_SPALTEN];
int transponiert[MAX_SPALTEN][MAX_ZEILEN];
// Eingabevalidierung
do {
printf("Geben Sie die Anzahl der Zeilen (1-%d) ein: ", MAX_ZEILEN);
scanf("%d", &zeilen);
} while (zeilen <= 0 || zeilen > MAX_ZEILEN);
do {
printf("Geben Sie die Anzahl der Spalten (1-%d) ein: ", MAX_SPALTEN);
scanf("%d", &spalten);
} while (spalten <= 0 || spalten > MAX_SPALTEN);
// Matrixelemente eingeben
printf("Geben Sie die Matrixelemente ein:\n");
for (int i = 0; i < zeilen; i++) {
for (int j = 0; j < spalten; j++) {
printf("Geben Sie das Element [%d][%d] ein: ", i, j);
scanf("%d", &matrix[i][j]);
}
}
// Matrix transponieren
for (int i = 0; i < zeilen; i++) {
for (int j = 0; j < spalten; j++) {
transponiert[j][i] = matrix[i][j];
}
}
// Matrizen mit formatierter Ausgabe ausgeben
printMatrix(matrix, zeilen, spalten, "Ursprüngliche Matrix");
printMatrix(transponiert, spalten, zeilen, "Transponierte Matrix");
return 0;
}
Kompilieren und ausführen des Programms:
gcc matrix_transpose.c -o matrix_transpose
./matrix_transpose
Beispielausgabe:
Geben Sie die Anzahl der Zeilen (1-100) ein: 3
Geben Sie die Anzahl der Spalten (1-100) ein: 3
Geben Sie die Matrixelemente ein:
...
Ursprüngliche Matrix:
1 2 3
4 5 6
7 8 9
Transponierte Matrix:
1 4 7
2 5 8
3 6 9
Wichtige Verbesserungen in dieser Version:
- Hinzugefügte Eingabevalidierung für Matrixdimensionen
- Erstellung einer separaten Funktion
printMatrix()
für eine bessere Codeorganisation
- Verbesserte Matrixausgabe mit ausgerichteter Formatierung mit
%4d
- Hinzugefügte Titel zur Matrixausgabe für Klarheit
- Robustere Behandlung verschiedener Matrixgrößen