M
Hi,
du hast bei deinen Funktionen ein paar Fehler gemacht:
Zur ersten: eingabe();
void eingabe (char *muster1 [j]){ // <-- j ist an dieser Stelle unbekannt, und macht auch keinen Sinn.
void eingabe (char muster[MUSTER_ZEILEN][MUSTER_SPALTEN]) { // <-- das ist wohl besser so
int i, j;
char m= '\0';
for (i=0; i<MUSTER_ZEILE; i++)
for (j=0; j<MUSTER_SPALTE; j++){
printf("Bitte geben Sie ein Zeichen ein:");
scanf("%c", &m);
getchar(); // <-- im Tastaturpuffer ist noch etwas drinnen. Unter Linux reicht das. Was unter Windows da noch zu tun ist, weiß ich nicht.
muster1[i][j]=m; // <-- hier kommt der Stern * weg.
}
}
Mit der obigen Funktion kannst du nun Muster einlesen. Eine Print-Funktion
für Muster ist bestimmt hilfreich beim Debuggen.
Die Funktionsdefinition deiner Funktion parkettierung() ist auch nicht korrekt.
Mach das analog zur obigen Funktion eingabe(). Beim Übergeben von Arrays
kann man höchstens die "äußerste" Größenbegrenzung weglassen. Alle anderen
muß man explizit angeben.
Also richtig wäre:
void parkettierung (char muster_a[MUSTER_ZEILEN][MUSTER_SPALTEN], char flaeche_a[FLAECHEN_ZEILEN][FLAECHEN_SPALTEN])
oder
void parkettierung (char muster_a[][MUSTER_SPALTEN], char flaeche_a[][FLAECHEN_SPALTEN])
Wie würde man nun die Funktionen aufrufen:
int main(void) {
char muster[MUSTER_ZEILEN][MUSTER_SPALTEN]; // <-- diese solltest du vielleicht noch initialisieren
char flaeche[FLAECHEN_ZEILEN][FLAECHEN_SPALTEN]; // <-- diese solltest du vielleicht noch initialisieren
eingabe(muster);
parkettieren(muster, flaeche);
}
Ich hoffe mal, du kommst damit weiter.
Gruß mcr
PS: du solltest dir vielleicht mal überlegen, ob du einen Typen für muster und
flaeche schreibst, damit du nicht immer die gesamte Array-Definition schreiben darfst.