001
03.08.2015, 02:47 Uhr
Hans
Library Walker (Operator)
|
Hi,
ich wunder mich gerade, dass der Compiler sich nicht darüber beschwert, sondern das Werk übersetzt...
Aber der Reihe nach: Wenn Du <cstdlib> verwendest, dann brauchst Du <stdlib.h> nicht.
Die Funktion main() markiert den Anfang eines Programms, und sollte deshalb nur ein einziges mal im gesamten Programm vorkommen. Du hast sie hier drei mal drin.
Die Zeile
brauchst Du ebenfalls nur einmal am Anfang des Programms zu schreiben und danach nicht mehr.
Hierzu
C++: |
az==0; bz==0; cz==0; dz==0; ez==0;
|
meint mein Compiler, dass diese Ausdrücke nicht sehr sinnvoll sind, genauer: "expression is not meaningful". Und da hat er recht, denn == ist zum vergleichen, aber ein Vergleich ohne folgen ist sinnlos.
Überleg mal, ob Du das hier
C++: |
while (a()==b()||a()==c()||a()==d()||a()==e()||b()==c()||b()==d()||b()==e()||c()==d()||c()==e()||d()==e())
|
wirklich das ist, was Du willst. Da wird nämlich jede Funktion vier mal aufgerufen, d.h. Du hast 4 Aufrufe der Funktion a(), 4 Aufrufe der Funktion b(), ... 4 Aufrufe der Funktion e(). Wenn Du nun srand() nur einmal am Anfang von main() hast und sich Deine Funktionen a() bis e() auf
C++: |
int X() { int all = Z - rand() %Y; return all; }
|
reduzieren, (wobei X für a,b,c,d oder e steht und Y und Z für die darin verwendeten Konstanten, ) was kommt dann dabei heraus? Wird die Schleife dann überhaupt durchlaufen? - Da solltest Du mal drüber nachdenken.
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. Dieser Post wurde am 03.08.2015 um 02:51 Uhr von Hans editiert. |