Zeige Ergebnis 1 bis 3 von 3
  1. #1
    Benutzerbild von Apfeltortex3
    Registriert seit
    Sep 2008
    Ort
    Weltherrschafts Forum
    BNet Account
    Blut-Soldat
    Beiträge
    523

    C++ Notendurchschnittsrechner Problem

    Ich weiß nich obs hier hin passt aber das Forum heißt ja Coding und webdesign
    Also hier mein Problem
    Ich versuche ein kleines Prog zu Schreiben um einen Notendurchschnit zu errechnen
    Ich bin Üblster Anfänger im Coding und Proggen also nich so Fachtechnisch

    hier der code
    Code:
    #include <iostream> 
    
    using namespace std; 
    
    int main() 
    { 
        int a;
        double b;
        double c;
        int d;
        
        cout<<"Guten Tag \n";
        cout<<"Das ist ein Notendurchschnitsrechner.";
        
        do
        {
        cout<<"\n Geben sie die eins(1) ein um ihre Noten einzugeben,und 2 um den Durchschnitt  zu Berechnen  \n";
        cin >> a;
        switch(a)
        {
        case 1:
            cout<<"Geben sie nun eine Note ein.\n";
            cin >> b;
            cout<<"\nUnd nun Noch eine.\n";
            cin >> c;
            cout<<"Ergebnis:"<<b+c<<"\n\n";
            cout<<"Hast du noch mehr Noten?(1=Ja, 2=nein)\n\n\n";
            cin >> d;
            break;
        case 2:
            cout<<"Geben sie Nun die Summe der Noten ein.\n";
            cin >> b;
            cout<<"\nNun die Anzahl der Noten.\n";
            cin >> c;
            cout<<"Ergebnis:"<<b/c<<"\n\n";
            cout<<"Moechten sie noch etwas berechnen?(1=Ja, 2=nein)\n\n\n";
            cin >> d;
            break;
    
        default:
            cout<<"Ihre Eingabe war ungueltig!\n\n";
            cout<<"Moechten sie es erneut versuchen?(1=Ja, 2=nein)\n\n\n";
            cin >> d;
            break;
        }
        }
        while(d==1);        
        
    
        return 0; 
    }
    Meine Fragen Sind:Wie bekomme ich es hin dass man mit der Vorher errechneten Zahl weiterrechnet?
    und
    Wie Bekomme ich es hin dass wenn jmd nein wählt er gleich zur Divison Kommt ?

  2. #2
    Gewinner Spellcontest Benutzerbild von Quillraven
    Registriert seit
    Sep 2004
    Ort
    Österreich
    BNet Account
    Quillraven
    Beiträge
    4.446
    wirst du wohl mit einem bufferarray vorerst mal spielen müssen oder einem pointer(falls du das schon kennst).

    z.b.

    Code:
    int* grades = 0;
    int overallgrade = 0;
    int averagegrade = 0;
    int numgrades = 0;
    
    cout << "wieviele noten wollen wie berechnen?"<< endl;
    cin >> numgrades;
    grades = new int[numgrades];
    
    for( int i = 0; i<numgrades; i++ )
    {
      cout << "Geben sie die " << i << ".te note ein" << endl;
      cin << grades [i];
      overallgrade += grades [i];
    }
    
    // tue irgendwas mit deinen noten
    averagegrade =  overallgrade/numgrades;
    cout << "durchschnitt ist: " << averagegrade  << endl;
    
    // am ende dann den pointer wieder freigeben
    delete grades;
    grades = 0;
    nicht getestet, aber dient jetzt auch nur als pseudocodebeispiel.


    @problem2:
    verschachteltes switch-case, wobei ich dir empfehlen würde, bei wenigen optionen, wie es bei dir der fall ist, einfach if-else herzunehmen.
    wählt er im case1 2(nein), dann überprüfst du das auch einfahc noch innerhalb des cases. entweder copy-paste vom zweiten zweig oder du lagerst es brav in eine funktion aus um codeduplizierung zu vermeiden.
    Besucht mich auf meinem YouTube Kanal

  3. #3
    Benutzerbild von Apfeltortex3
    Registriert seit
    Sep 2008
    Ort
    Weltherrschafts Forum
    BNet Account
    Blut-Soldat
    Beiträge
    523
    Du bist gut oO
    nur ein Schreibfehler
    statt cin << cin >> ^^
    hab mich schon gewundert why das nicht Kompilieren wollte^^

    thx

    Edit:
    Die Stellen hinter dem komma werden nocht angezeigt habs an den noten meiner schwester berechnet statt 2,5 wurden 2 angezeigt
    :P

    edit2:
    mir ist aufgefallen dass wenn 5 sechsen da sind und die letzt eingegebene zahl eine 1 ist der durchschnitt 1 ist

    edit3:
    Habs gelöst musste nur

    Notenanzahl = numgrades;
    Note = overallgrade;
    printf ("%.2f / %.2f = %f\n", Note, Notenanzahl, Note / Notenanzahl);

    statt dem anderen machen ^^
    immer diese doubles

Forumregeln

  • Es ist dir nicht erlaubt, neue Themen zu verfassen.
  • Es ist dir nicht erlaubt, auf Beiträge zu antworten.
  • Es ist dir nicht erlaubt, Anhänge hochzuladen.
  • Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
  •