Het gemiddelden van 3 scores

Status
Niet open voor verdere reacties.

555Martijn

Gebruiker
Lid geworden
15 jun 2008
Berichten
163
( Ja CoD, ik ben eindelijk een boek aan het lezen ;) )

Na weer een "epic fail" toen ik dacht dat ik wel een "if else" statement uit mijn hoofd kon doen, bedacht ik me dat het toch maar eens tijd was om me te concentreren op een C++ boek, een eBook welteverstaan.

En aan het eind van een hoofdstuk zitten "exercises" en ik ging er daar een van doen.

De opdracht:
"Write a program that gets three game scores from the user and displays the average"

En dit is mijn uitkomst, die dus niet werkt.
(Ik heb dit uit mijn hoofd gedaan, dus kan ook gewoon een typo die ik niet zie)

Code:
#include <iostream>

using namespace std;

int main()
{
    int scoreOne, scoreTwo, scoreThree, average;
    
    cout << "scoreOne: " << endl;
    cin >> scoreOne;
    cout << "scoreTwo: " << endl;
    cin >> scoreTwo;
    cout << "scoreThree: " << endl;
    cin >> scoreThree;
    cout << "Average score:" << (scoreOne + scoreTwo + scoreThree) / average << endl;
    system("pause");
    
    }

Ik heb de manieren gebruikt die ik in het boek heb geleerd, ik denk nu zelf dat ik iets fout heb gedaan met "<< (scoreOne + scoreTwo + scoreThree) / average <<" maar zie het zo snel even niet.

Bedankt voor het lezen.
 
Als ik het letterlijk lees dan heb je Average wel als int gedefinieerd maar nergens

Average = 3;

gesteld ???

Ik zou het anders ook niet weten :o
 
Quadran heeft gelijk.

Code:
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int t, s(0), c(0);
            
    while(cin>>t) s += t, c++;
    
    std::cout << "Total:   "   << s 
              << "\nAverage: " << (s > 0 ? ((double)s/c) : 0) << '\n';    
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
 
Ook moet main een int retourneren

Die had ik zo over het hoofd gezien. :o

Code:
cout << "Average score:" << (scoreOne + scoreTwo + scoreThree) / average << endl;

Het bovenstaande zou de TS ook een andere uitkomst geven dan hij verwacht.
 
Die had ik zo over het hoofd gezien. :o

Code:
cout << "Average score:" << (scoreOne + scoreTwo + scoreThree) / average << endl;

Het bovenstaande zou de TS ook een andere uitkomst geven dan hij verwacht.

Tenzij hij een geheel getal wilt behouden... Casten naar double en 0.5 erbij doen is een mooie truuk om correct af te ronden.

Mooie korte code trouwens CoD :cool:
 
Bedankt beiden!
Ik heb het opgelost, en had inderdaad return en formule vergeten.

Dit is wat ik op het moment heb, ik weet niet waarom ik dit post :D
Code:
#include <iostream>

using namespace std;

int main()
{
    int scoreOne, scoreTwo, scoreThree, average;
    
    cout << "scoreOne: ";
    cin >> scoreOne;
    cout << "scoreTwo: ";
    cin >> scoreTwo;
    cout << "scoreThree: ";
    cin >> scoreThree;
    
    average = (scoreOne + scoreTwo + scoreThree) / 3;
    cout << "Average score: " << average << endl;
    system("pause");
        
    return 0;
    }



<klikt op vraag opgelost>
 
Laatst bewerkt:
Je rondt nu wel af, of is dat de bedoeling ? (2+2+1)/3 = 1;
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan