Anzahl der Eingaben ausgeben

Gwenn

Grünschnabel
Hallo zusammen,

eine Frage zu C++.
Die Aufgabe meines Programmes ist es, eine Zahl per Zufallsgenerator zu erstellen, welche dann erraten werden muss. Soweit hatte ich kein Problem.

Am Ende des Programms soll jedoch die Anzahl der Versuche ausgegeben werden, die benötigt wurden, die zufällige Zahl zu ermitteln.

(Das sollte dann beispielsweise so aussehen:

Bitte Zahl zwischen 0 und 100 eingeben.
85
Meine Zahl ist kleiner, versuchs nochmal.
80
Meine Zahl ist größer, versuchs nochmal.
83
83 ist richtig! Du hast 3 Versuche benötigt. <- Wie kriege ich es hin, dass die Versuche gezählt & ausgegeben werden?)


Mein Code:

Code:
 // Zufallsgenerator.cpp

#include <ctime>
#include <iostream>

using namespace std;

int main()
{

int eingabe;

srand(time(0)); // Zufallsgenerator liefert immer neue Zahl
int r = rand()%100;    // Liefert eine Zahl von 0 bis RAND_MAX

cout << "Bitte Zahl zwischen 0 und 100 eingeben.\n";

do 
{
cin >> eingabe; 

if(eingabe>r) // Wenn eingegebene Zahl größer, dann...etc.
cout << "Meine Zahl ist kleiner, versuchs nochmal.\n";

if(eingabe<r)
cout << "Meine Zahl ist größer, versuchs nochmal.\n";

}

while(eingabe!=r);

if(eingabe==r)
cout << r << " ist richtig! Du hast   Versuche benötigt.\n";

return 0;
}


Habe aufgeschnappt, dass dazu scheinbar Felder verwendet werden, aber bei mir wird das nichts.

Vielen Dank im Voraus!
 
Hallo

also eigentlich recht trivial mit einer Zählvariable in der do while Schleife.
Frage mich wieso du darauf nicht gekommen bist bei dem Fortschritt deines Programmes oder ich habe die Frage falsch verstanden ist schon spät :)

mfg
 
einfach in deine do-while schleife nen integer hochzählen lassen ...

C++:
#include <ctime>
#include <cstdlib>
#include <iostream>

int main()
{
    std::srand(static_cast<unsigned>(std::time(NULL)));
    
    unsigned int value(std::rand() % 100);

    std::cout << "Bitte geben Sie eine Zahl zwischen 0 bis 100 ein." << std::endl;

    unsigned int input(101);
      unsigned char tries(0);
    while (input != value)
    {
        std::cin >> input; 
        if (input != value)    std::cout << "Meine Zahl ist " << (value > input ? "größer" : "kleiner") << ". Versuch's nochmal!\n";
        ++tries;
    }
    
    std::cout << input << " ist richtig! Du hast " << tries << "  Versuche benötigt!\n";
}
.. so sollte es doch gehen ;)
 
Ah, danke!

So habe ich es auch mal versucht, aber die 0 bei unsigned char tries(0); vergessen und den Ansatz komplett verworfen.

Da habt ihr einem Schussel aus der Klemme geholfen :)
 
Zurück