// Aufgabenstellung: Inverse einer Matrix bilden #include #include #include #include "func.h" int main(int argc, char **argv) { int i,j; int size; int **unit = NULL; float **matrix = NULL; float **imatrix = NULL; int mode; // Matrix-Eingabemodus // Dateirelevantes char path[255]; FILE *open = NULL; // sonst gibts warnings FILE *save = NULL; printf("Aufgabe: Inverse einer Matrix bilden\n--Bitte verwenden Sie lediglich quadratische n x n Matrizen bei denen die Hauptdiagonalelemente != 0 sind--\n\n"); printf("Bitte waehlen Sie den Eingabemodus\n(0 = Zufallszahlen von 0-10, 1 = Manuelle Eingabe, 2 = Datei oeffnen): "); scanf("%i", &mode); if (mode == 2) { printf("Bitte geben Sie einen Dateipfad an: "); scanf("%s", path); _open(open, path, &matrix); size = _getsize(open, path); genunitmatrix(&unit, size); } if (mode == 0 || mode == 1) { printf("Bitte geben sie die Groesse der Matrix an (n x n): "); scanf("%i", &size); genmatrix(&matrix, size, mode); genunitmatrix(&unit, size); } printf("\n\nEingegebene Matrix (A):\n"); for (i = 0; i < size; ++i) { for (j = 0; j < size; ++j) printf("%8.2f", matrix[i][j]); printf("\n"); } printf("\n\nErzeugte Einheitsmatrix (E):\n"); for (i = 0; i < size; ++i) { for (j = 0; j < size; ++j) printf("%4i", unit[i][j]); printf("\n"); } _invert(&matrix, &imatrix, &unit, size); printf("\n\nInverse Matrix (A^-1):\n"); for (i = 0; i < size; ++i) { for (j = 0; j < size; ++j) printf("%8.2f", imatrix[i][j]); printf("\n"); } printf("Moechten Sie das Ergebnis speichern? (J/N): "); char c = getche(); if (toupper(c) == 'J') { printf("\nyes!"); } else { printf("\nno!"); } printf("\n"); return EXIT_SUCCESS; }