"bool win() will always evaluate as true"
-
Wie der Threadtitel schon ankündigt, habe ich ein Problem mit einer Funktion.
Und zwar gibt folgende Funktion immer true aus:bool win() { int test[10] = {}; //array mit zehn elementen, die alle 0 sind for(int y=0;y!=9;++y) // Ein anderes array (arr[9][9]) durchgehen for(int x=0;x!=9;++x) // Das array kann Werte von 0 - 9 beinhalten ++test[arr[x][y]]; // Hier wird nun mitgezählt, wie oft // 0 - 9 in diesem Array vorkommt if(test[0]==0) if(test[1]==9) if(test[2]==9) if(test[3]==9) if(test[4]==9) if(test[5]==9) if(test[6]==9) if(test[7]==9) if(test[8]==9) if(test[9]==9) return true; return false; // die Funktion soll nur DANN true zurück geben, // wenn 0 garnicht vorkommt und 1 - 9 jeweils 9 mal }Wieso gibt die Funktion immer "true" zurück? Bin ich blind?

-
Ehm, jenachdem welche Werte in arr[9][9] stehen kann test[1] bis test[9] schonmal jeweils den Wert 9 enthalten.
Und?
-
hat sich erledigt, es lag nicht an der Funktion
an einer stelle habe ich nicht
if(win())sondern
if(win)geschrieben
Ich bin wirklich manchmal blind

-
workspace schrieb:
hat sich erledigt, es lag nicht an der Funktion
an einer stelle habe ich nicht
if(win())sondern
if(win)geschrieben
Ich bin wirklich manchmal blind

Hast du schonmal was Schleifen gehört? Weil das sieht ja grauenhaft aus.
-
Firefighter schrieb:
Hast du schonmal was Schleifen gehört? Weil das sieht ja grauenhaft aus.
Schau mal eine Zeile über dem Zeugs. Offensichtlich kennt er es.. Was die Frage aufwirft wieso er es da nicht auch so macht..

Vielleicht ein akuter Fall von Copy/Paste-itis.

-
Haha, stimmt hatte ich komplett übersehen
Aber netter Wortlaut "akuter Fall von Copy/Paste-itis." LOL
-
Abgesehen von Schleifen gibts so einen UND-Operator &&, mit dem man mehrere Bedingungen verknüpfen kann. Für ein anderes Mal...
