Inhalt des Kurses zurück weiter

eine Lösung zu Kurs 9

Heute zur Abwechslung mal eine Lösung, die nicht funktioniert.

Was ist daran falsch?

Download der Datei "feld2.c"


int spielfeld_anzeigen( SPIELFELD *spielfeld )

{

int x, y;

for (y = 0; y++; y = MAX_Y)

{

printf("\n");

for (x = 0; x++; x = MAX_X)

print(hole_darzustellendes_zeichen( spielfeld, x, y ));

}

printf("\n");

return 0;

}

void main()

{

int return_wert;

return_wert = spielfeld_anzeigen(Test);

}


Fehler 1: Die X-Schleife beginnt mit 0, dann wird x auf 1 erhöht, und am Ende des ersten Durchlaufes auf MAX_X gesetzt. Die Schleife wird mit x=MAX_X+1 endlos durchlaufen.

Fehler 2: Die Y-Schleife beginnt mit 0, dann wird y auf 1 erhöht, und am Ende des ersten Durchlaufes auf MAX_Y gesetzt. Die Schleife wird mit y=MAX_Y+1 endlos durchlaufen.

Fehler 3: Der Parameter des Unterprogramms wird in der Funktion 'main' mit einem falschen Typ übergeben. Hier muß die Adresse der Struktur übergeben werden.

Fehler 4: Bei der Ausgabe des Zeichens mit der Funktion 'printf' fehlt der Parameter für das Format. Hier muß ein Zeichen ausgegeben werden.

Hier die Fehlerbehobene Lösung:

Download der Datei "feld3.c"


int spielfeld_anzeigen( SPIELFELD *spielfeld )

{

int x, y;

for (y = 0; y = MAX_Y; y++)

{

printf("\n");

for (x = 0; x = MAX_X; x++)

printf( "%c", hole_darzustellendes_zeichen( spielfeld, x, y ));

}

print("\n");

return 0;

}

void main()

{

int return_wert;

return_wert = spielfeld_anzeigen( &Test );

}