Wie kann ich mit C++ zwei Zufallszahlen generieren
Die bzw. eine Zufallsfunktion steckt in der C-Bibliothek und schimpft sich rand(). Allerdings gibt die Funktion eine Ganzzahl zurück, um eine Zahl zwischen 0 und 10 zu bekommen, musst du also noch etwas rechnen. Weiterhin muss der Zufallsgenerator einen zufälligen Startwert bekommen, sonst gibt er immer die gleiche Zahlenreihe aus (der Generator muss aber wohlgemerkt nur einmalig bei Programmstart initialisiert werden, nicht vor jedem Würfeln).
int a, b, c, Eingabe;
a = //Zufallszahl
b = // Zufallszahl
srand(time(0)); // Startwert setzen.
a = rand() % 10; // Zufallszahl durch 10 teilen und Rest benutzen. Beispiel:
// Zufallszahl = 29245; 29245 : 10 = 2924, Rest 5.
b = rand() % 10;
c = (a + b);
In C wie auch in der Mathematik ist es durchaus erlaubt, ohne Klammern zu addieren.
c = a + b;
if (Eingabe!=c)
else if (Eingabe==c)
Wenn nicht Eingabe != c gilt, die erste if-Bedingung also nicht zutrifft, dann kann nur Eingabe == c gelten. Dies extra mittels else if zu überprüfen ist unnütz und somit schlechter Stil, ein einfaches else reicht.
if (Eingabe != c)
…
else
…
main();
Wenn du eine Endlosschleife haben möchtest, dann benutze auch eine Schleife. Mit rekursiven Aufrufen, also damit, dass eine Funktion sich immer wieder selbst aufruft, müllst du nur den Stapelspeicher voll. Die Gefahr, dass du damit wegen eines Stapelüberlaufs das Programm zu Absturz bringst, ist in diesem Fall wegen der vermutlich geringen Anzahl an Rekursionen zwar praktisch nicht existent, trotzdem ist auch dies schlechter Stil, ganz besonders schlechter sogar.
int main() {
int a, b, c, Eingabe;
srand(time(0));
do {
a = rand() % 10;
…
if (Eingabe != c) {
…
}
else {
std::cout << "RICHTIG...\n\n\n" << std::endl;
}
} while (true);
}
Du solltest dir last but not least angewöhnen, deine Programme sauber zu strukturieren. Wenn du alles in der ersten Zeile anfängst, verlierst du schnell die Übersicht.