144
06.01.2004, 11:06 Uhr
Lumina
|
C++: |
/* Aufgabe 1: Finden Sie die 2 Fehler im folgenden Programm. Begründen Sie jeweils. Falsch erkannte Fehler (also als Fehler angegebene richtige Programmstellen) führen zum Punktabzug. */
# include <stdio.h>
int max(int a, int b) { return((a>b)?a:b); }
main() { int x = 3, y = 9, z = 7; long max;
max=max(max(x,y),z); printf("Das %s von %d, %d und %d ist %d.", "Maximum", x, y, z, max); }
|
Ich hatte folgenden Vorschlag: 1.Fehler: Eine Variable darf nicht so genannt werden wie eine Funktion, denn das würde dazu führen, dass zunächst beides akzeptiert wird, aber dass man der Variable nichts zuweisen kann, weil an dieser Stelle automatisch nach () und Parametern gesucht wird, was es ja bei einer Variable nicht gibt! Verbesserungsvorschlag: Variable max in maximum umbenennen Dann sieht das so aus und liefert auch das Richtige:
C++: |
# include <stdio.h>
int max(int a, int b) { return((a>b)?a:b); }
main() { int x = 3, y = 9, z = 7; long maximum;
maximum=max(max(x,y),z); printf("Das %s von %d, %d und %d ist %d.", "Maximum", x, y, z, maximum); }
/* nun ergibt sich als Ausgabe: Das Maximum von 3, 9 und 7 ist 9. Press any....
|
wo ist also der zweite gesuchte Fehler???? -- ******************************************* Willst du glücklich sein im Leben, trage bei zu and'rer Glück, denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück! ******************************************* |