PS: Programmet är en uppgift i programmering kurs-A, så inga avanderade koder osv. Bara försök göra om min så lite som möjligt bara så det blir rätt och funkar.
Eftersom det är en skoluppgift tänker jag inte servera lösningen. Men tänk igenom vad du egentligen gör med din kod. Kör funktionen på 'pappret' och se vad som händer* med dina flaggor när du gått ur den första loopen och backa sen till vad som fått tillståndet att se ut som det gör så har du där lösningen mitt framför ögonen :)
* Utgå från att varje bokstav är fel och att undantaget är om det blir rätt bokstav så ser du att det finns ett logiskt fel med din kod
Okej. Men i all programmering gäller det att avlusa mot alla upptänkliga fel. Logiska lustigheter finns det ingen annan råd till än att gå igenom flödet / händelseförloppet och i såna här fall räcker det gott med papper och penna.
I ditt fall är det enkelt och det handlar om att byta plats på ett nyckelord... och jag tror att du är mer hjälpt av att hitta felet själv än att jag skriver det i klarttext ;)
Jaja.. i din första loop så vill du tydligen traversera ordet. För varje bokstav så kollar du om bokstaven är lika med en speciell bokstav.
- Om det är lika vad händer då?
- Om det inte är lika vad händer då?
Om du istället för att ha villkoret "spelarOrd != tecken" anger i<strängens längd och nyttjar ditt 'break' på om det är rätt bokstav istället för om det är fel bokstav. Som det är nu kommer du inte långt i loopen... om första är fel avbryts sökningen. Om första är rätt avbryts sökningen men flaggan förblir false.
Lägg inte uppräkningen av antalet gissningar i varje loop, lägg den globalt EN gång i funktionen istället... (för visst är det väl så att varje gång funktionen körs så har det skett en gissning?) som det är nu finns det risk för lustiga sido-effekter..
Och så var det det där med papper och penna (*visslar försynt) ;)
Jag vet inte vad du gör för fel men följande funkar med antal gissningar o.s.v, ivf när jag testar den <kompilerat med g++> samt resten av koden som fanns på den länken du angav
(!) Det där "len" gäller det korrekta ordet, så kör med strlen(ordet) istället för att få aktuell längd. Annars kanske du läser in data som inte har med ordet att göra.
260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849