minicrispie: Hilfe zu C++

Das Forum hier ist zwar was mit HTML und anderem, ich wollte aber von Javascript mal weggehen und was mit C++ machen...
Folgendes Problem:
Wie kann ich mit C++ zwei Zufallszahlen generieren, diese da  adieren und vom Nutzer die Summe verlangen?
Ich will also nur den Javascript-code:

var a = Math.round((Math.random)*10);
var b = Math.round((Math.random)*10);
var c = (a + b);

if (Eingabe!=c) {alert("Leider Falsch !");}
else if (Eingabe==c) {alert("Richtig !");}

in C++ "umwandeln". Das Programm gibt mir also zwei Zahlen vor, die der Benutzer dann addiert und eingibt.
So weit bin ich schon gekommen:

#include <iostream>

int main()
{
int a, b, c, Eingabe;
a =  //Zufallszahl
b =  // Zufallszahl
c = (a + b);

std::cout << "Addieren Sie nun die Zahlen" << a << " und " << b << "." << std::endl;
std::cout << "\nDas Ergebnis ist: " << std::flash;
std:cin >> Eingabe;
if (Eingabe!=c)
{
std::cout << "Das Ergebnis ist leider falsch...\n\n\n" << std::endl;
}
else if (Eingabe==c)
{
std::cout << "RICHTIG...\n\n\n" << std::endl;
}
main();
}

Könnt ihr mir helfen ??

--
Wo die Sprache aufhört, fängt die Musik an...
  1. Könnt ihr mir helfen ??

    Willst du angefeuert werden oder ein "Gut"-Zettelchen?

    Oder anders: Wo liegt dein Problem? Ohne Problembeschreibung keine Hilfe.

    1. Oder anders: Wo liegt dein Problem? Ohne Problembeschreibung keine Hilfe.

      Steht doch eigentlich da...    :
      Wie kann ich mit C++ zwei Zufallszahlen generieren und diese auch runden ???
      Betonung auf                    ▲                und                 ▲

      Im Klartext:
      Wie lautet dieses Skript:

      var a = Math.round((Math.random*10));

      in C++ ?

      --
      Wo die Sprache aufhört, fängt die Musik an...
  2. 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.

    1. 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);
      }

      Hey danke ... hast mir echt geholfen ... funktioniert auch prima ...

      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.

      Das werd ich mir merken ^^

      --
      Wo die Sprache aufhört, fängt die Musik an...