Schleife wie gehts weiter...



  • [cpp]
    #include <iostream>
    using namespace std;

    int main ()

    { char Eingabe;

    do
    {
    cout << " Geben sie eine Zahl ein: ";
    cin >> Eingabe;
    }
    while ( Eingabe > '0');

    return 0;

    }

    Jetzt möchte ich gerne, dass der Compiler die angegebenen Zahlen zusammenrechnet und den Mittelwert ausgibt. Wie mach ich das...

    im voraus vielen Dank...



  • Der Compiler? Das musst du schon selbst machen 😉
    Guck dir mal die Funktion atoi an. Bei einer einfachen Zahl (sehe gerade das du nur ein Zeichen liest) kannst du auch prüfen mit isdigit ob es sich um eine Zahl handelt und dann Eingabe-int('0') machen und das immer auf eine vor der Schleife mit 0 initialisierten Variablen addieren. Wieviel Schleifendurchläufe du gemacht hast, musst du mit einer zusätzlichen Variable einfach zählen.



  • Aber versteh nur Bahnhof...



  • int i=0;
    int erg=0;
    do {
      cout << " Geben sie eine Zahl ein: ";
      cin >> Eingabe;
      if(isdigit(Eingabe) && Eingabe!='0') {
        erg += int(Eingabe)-int('0');
        ++i;
      }
    }while ( Eingabe > '0');
    

    Castet Eingabe und '0' zu Integer, somit erhält man den ASCII-Wert beider Zahlen. Durch Subtraktion von '0' erhält man die gewünschte Zahl. Wie man anschließend den Mittelwert errechnet, kriegst ja sicher noch selbst hin.



  • Folgender Algorithmus:

    Initialisierung:
    - Setze Summe auf 0
    - Setze Anzahl auf 0
    Laufzeit:
    -  Lese Zahl ein
    -  Addiere diese Zahl zur bestehenden Summe
    -  Erhöhe Anzahl um 1
    - Wiederhole den Vorgang solange bis die Zahl 0 eingegeben wurde
    Ende:
    - Summe durch Anzahl dividieren und ausgeben
    

    Daraus resultieren die zwei benötigten Variablen (sind die beiden Subjekte im Text) die Vorgänge (Zahl einlesen, Addieren zur bestehenden Summe, Anzahl erhöhen), dass eine Schleife benötigt wird ("Wiederhole") und das diese die Bedingung Zahl != 0 hat ("solange bis die zahl 0 eingegeben wurde").

    Daraus solltest du mit ersten Tutorials und etwas Wissen ohne Probleme ein C++-Programm erstellen können.

    @Vellas: Bitte keine fertigen Lösungen zu Hausübungen probieren, so lernt derjenige nie und steht jede Woche wieder auf der Matte 😉

    MfG SideWinder



  • Setz den Typ von "Eingabe" auf int, dann hast du gleich die Zahl und brauchst sie nicht umzuwandeln.
    Dann brauchst du noch ein Integer z.B. "summe", den du in jedem Schleifendurchlauf um "Eingabe" erhöhst.
    Außerdem brauchst du noch eine Variable z.B. "counter", die die Schleifendurchgänge zählt.
    Nach der Schleife kannst du dann "summe" durch "counter" teilen, und du hast den Mittelwert.

    EDIT: Mist, zu spät, das ist das dumme an Tabs 😃



  • SideWinder schrieb:

    @Vellas: Bitte keine fertigen Lösungen zu Hausübungen probieren, so lernt derjenige nie und steht jede Woche wieder auf der Matte 😉

    hab heute wohl nen zu guten tag 😃
    @Visual Newbie: Hol dir mal ein Buch oder lies mal ein anständiges Tutorial.



  • Keine Sorge, werde das von Vellas nicht probieren, weil ichs nicht verstehe...

    allerdings steh ich schon ziemlich auf dem Schlauch,, probier es aber trotzdem... 😮


Anmelden zum Antworten