002
01.12.2011, 19:58 Uhr
Hans
Library Walker (Operator)
|
Hi,
also diese Zeile hier:
C++: |
if (kopf || zahl >50)
|
ist schon mal falsch. Die sollte wie oben im Quelltext auch
C++: |
if (kopf>50 || zahl >50)
|
So wie ich die Aufgabe verstehe, soll allerdings erst die Münze so oft geworfen werden, bis eine Seite 50 mal gekommen ist, und erst dann soll ausgegeben werden, was gekommen ist. Oder ist die Aufgabestellung da nur schlecht formuliert? Dann ist die innere Schleife, bzw. for-Schleife falsch. Du weisst ja schliesslich nicht, ob Du mit 100 durchläufen auskommst oder nicht. Es kann sein, dass das gewünschte Ergebniss schneller da ist, d.h. die Münze musste weniger als 100 mal geworfen werden. Es kann aber auch mehr sein. Deshalb ist da eine Konstruktion mit while besser. Bzw. weil das Ergebniss ja erst nach dem durchlauf der Schleife abgefragt wird, eine do-while-Schleife.
Und schliesslich noch zur Unterscheidung von C und C++: Diese Header
C++: |
#include <stdlib.h> #include <time.h> #include <stdio.h>
|
sind kein C++ sondern C. Wenn man die durch diese Header definierten Funktionen nutzen will, sollte man auch die C++ Varianten davon nehmen. Das sieht dann so aus:
C++: |
#include <cstdlib> #include <ctime>
|
Und <stdio.h> brauchst Du hier überhaupt nicht, weil die dadurch bereit gestellten Funktionen nicht benutzt werden. Ausserdem ist alles was zur Ausgabe nötig ist, auch in iostream vorhanden ist.
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. |