Nur Erklärung erstmal.

BasicC

Erfahrenes Mitglied
Das ist die Aufgabe:

Schreiben Sie ein modularisiertes Programm (mit getrennten header- und Funktions- Quelldateien), das quadratische Matrizen konstanter Dimension DIM transponiert (Zeilen und Spalten in situ1 vertauscht). Lesen Sie dazu von einer selbst erstellten Eingabe-Datei beliebig viele Matrizen (mit je DIM Zeilen á DIM Elementen) bis EOF. Verwenden Sie (mindestens) vier Funktionen: eine zum Einlesen einer Matrix, eine zur formatierten Aus- gabe einer Matrix, eine zum Transponieren und eine zum Austausch zweier doubles.

Ich möchte eine grobe Erklärung haben keine Lösung , ich möchte versuchen selbst ein Code zu schreiben.
 

BasicC

Erfahrenes Mitglied
main.c
C:
#include <stdlib.h>
#include "myfuncs.h"
int main(){
while(read_mat(mat,fp)){
printf("Originale-Matrix\n");
print_mat(mat);

//transporieren
transp_mat(mat);
printf("Transponente Matrix\n");
print_mat(mat);
}
fclose(0);

myfuncs.c
Code:
#include "myfuncs.h"

int read_mat(double mat [DIM][DIM]; FILE *fp);
void print_mat(double mat[DIM][DIM]);
void transp_mat(double mat[DIM][DIM]);
void swapd(double *a, double *b);
}
myfuncs.h
Code:
#include MYFUNCS_H
#define MYFUNCS_H
#include <math.h>
#include <stdlib.h>

enum {DIM=3};

void func1(..);
int func2(..);

#endif

So habe einiges aufgeschrieben hoffe kannst mir weiter helfen ..
 
Zuletzt bearbeitet von einem Moderator:

ComFreek

Mod | @comfreek
Moderator
Ich würde mit swapd mal anfangen, das ist die einfachste Funktion. Weißt du, wie man zwei Variablenwerte tauscht?
Dann kannst du swapd fürs Transponieren nutzen. Schreib dir mal eine einfache Matrix auf ein Blatt Papier, z. B. ((1, 2, 3), (4, 5, 6), (7, 8, 9)). Wie liest du die Transponierte ab? Welche Werte vertauschst du wie?