008
30.01.2008, 14:50 Uhr
~user453
Gast
|
ich bin nun auf eine lösung gestoßen, aber die ist mir etwas unklar. die variable "numberAppeared" müsste doch immer true werden, da in dem array "appearedNumber" ja eigentlich keine werte drin stehen bzw. 0er. (ich sehe nicht, dass es initialisiert wurde).
ich habe den code getestet und er liefert die korrekte anzahl, aber wie kann das sein? die letzte if-schleife läuft doch nur ein einziges mal ab, wenn ich die methode differentInRotation aufrufe?!
C++: |
int Roulette::differentInRotation() { int differentNumbers = 0; int appearedNumbers[37]; bool numberAppeared;
for (int i = 0; i < ARRAY_SIZE; i++) { numberAppeared = false;
// Look whether the current number was counted already for (int j = 0; j < differentNumbers; j++) { if (rotation[i] == appearedNumbers[j]) { numberAppeared = true; break; } }
// If the number did not appear, remember it and increase the cout of different numbers if (!numberAppeared) { appearedNumbers[differentNumbers] = rotation[i]; differentNumbers++; } }
return differentNumbers; }
|
|