9 svar
271 visningar
mjatte.mj 70 – Fd. Medlem
Postad: 8 jan 2019 19:56

Något går fel (kort program)

Hej, något går väldigt fel när jag ska köra programmet...Kan någon se vad jag gjort för fel?

 

#include <iostream>

using namespace std;

int main(int argc, const char * argv[])

{

    float hemlig;

    float gissa;

    int räknare = 0;

    int maxAntal = 4;

    bool ingagissn = false;

    

   cout << "Spelare 1: välj ett hemligt nummer mellan 1 och 100..." << endl;

    cin >> hemlig;

    

    

    

    while(hemlig != gissa && !ingagissn )

    {

        if(maxAntal > räknare)

        {

        cout << "\n\n\n\n\nSpelare 2: Skriv in din gissning: " << endl;

        cin >> gissa;

        räknare++;

            cout << "Du har: " << maxAntal-- << " gissningar kvar..." << endl;

        

        }

        else

        {

            ingagissn = true;

           cout << "Spelare 1 vann!" << endl;

        }

        

    }

     if(ingagissn)

    {

        cout << " du förlorade" << endl;

    }

     else {

         cout << "\nDet är helt rätt!" << endl;

    

    

     }

    return 0;

}

Laguna Online 30693
Postad: 8 jan 2019 20:00

Vad händer? 

Affe Jkpg 6630
Postad: 8 jan 2019 20:21

Det tycks saknas något:

if (gissa == hemlig) break;

mjatte.mj 70 – Fd. Medlem
Postad: 9 jan 2019 17:05

Testade det och samma fel uppstår.......

Detta händer:

Spelare 2: Skriv in din gissning: 

3

Du har: 3 gissningar kvar...

Spelare 1 vann!

 du förlorade

Program ended with exit code: 0

 

allt skrivs ihop^^

Laguna Online 30693
Postad: 9 jan 2019 17:18

Vad var det hemliga talet? 

mjatte.mj 70 – Fd. Medlem
Postad: 9 jan 2019 22:30

kommer inte ihåg men istället för att skriva ut som den borde så skrivs allt ut på en gång och avslutas.

Laguna Online 30693
Postad: 9 jan 2019 22:49

Två förslag: 1) stoppa in utskrifter här och där som visar värdet på intressanta variabler

2) använd en debugger och kör en rad i taget

Laguna Online 30693
Postad: 9 jan 2019 22:55

Jag har en liten aning. Kan du visa hela in- och utmatningen från en körning?

Affe Jkpg 6630
Postad: 9 jan 2019 23:18

Ibland kan det vara problem med att använda åäö i variabelnamn

AndersW 1622
Postad: 10 jan 2019 17:31

Felet ligger i dessa två rader:

räknare++;

            cout << "Du har: " << maxAntal-- << " gissningar kvar..." << endl;

Här ökar du räknare och sedan minskar du maxAntal vid utskrift vilket gör att när maxantal är tre som skrivs ut i exemplet är räknare 1. Sedan ökar du räknare och minskar maxAntal vilket gör att båda blir 2 och if-satsen if(maxAntal > räknare) går till else nästa gång.

Svara
Close