1. #1
    Spokos's Avatar
    Registered
    06/11/03
    Location
    Gent
    Posts
    267
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0

    [PROG][C++] vraagje:)

    Ik moet hier een oefening maken:
    "Schrijf een programma dat een reeks positieve getallen inleest. Stop bij het eerste negatieve getal. Druk nu het gemiddelde af.(het negatieve getal wordt niet meer meegenomen in de berekening van het gemiddelde)

    Dit is wat ik al heb, maar blijkbaar klopt er toch iets niet

    #include <iostream>
    using namespace std;

    int main()
    {
    int getal,tel=0,som=0;
    float gemiddelde;
    cout<<"Geef een reeks getallen in - Sluit af met een negatief getal: \n";
    do
    {
    cout <<"Geef getal: ";
    cin>>getal;
    tel++;
    som+=getal;
    }
    while (getal>=0);
    gemiddelde=som/tel;
    cout<<"Gemiddelde= " <<gemiddelde;
    return 0;
    }

    Als ik bijvoorbeeld 5,5 en -1 invoer in het programma, geeft ie als gemiddelde 3. Ziet iemand de fout? of weet iemand hoe het moet? pls help me Ik veronderstel dat de fout bij de tel ligt?
    Last edited by Spokos; 13-10-2007 at 15:48.
    no votes  

  2. #2
    Spokos's Avatar
    Registered
    06/11/03
    Location
    Gent
    Posts
    267
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    als ik de tel verander naar -1 dan klopt het min of meer, maar toch niet echt exact hoor blijkbaar toch maar vreemd precies
    logischere oplossingen mogen altyd vermeld worden
    weet er iemand hoe ik van het gemiddelde een kommagetal kan maken?
    no votes  

  3. #3
    Tyfius's Avatar
    Registered
    01/09/02
    Location
    Peutie
    Posts
    7,664
    iTrader
    0
    Mentioned
    4 Post(s)
    Reputation
    13/105
    De fout ligt bij uw while loop. Hij gaat eerst die do {} uitvoeren en dus uw -1 inlezen, aftrekken van uw som en dan kom je dus op 9 uit. 9/3 = 3.

    Wat je zou kunnen doen is bijvoorbeeld:
    Code:
    cout << "Geef getal: ";
    cin >> getal;
    while (getal >= 0) {
      tel++;
      som += getal;
    
      cout << "Geef getal: ";
      cin >> getal;
    }
    // Rest van get programma.
    no votes  

  4. #4
    Spokos's Avatar
    Registered
    06/11/03
    Location
    Gent
    Posts
    267
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    en hoe weet je dat ie -1 aftrekt van de som??
    no votes  

  5. #5
    Spokos's Avatar
    Registered
    06/11/03
    Location
    Gent
    Posts
    267
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    aaaaah ik snap het denkik! bedankt!
    Last edited by Spokos; 13-10-2007 at 18:42.
    no votes  

  6. #6
    Spokos's Avatar
    Registered
    06/11/03
    Location
    Gent
    Posts
    267
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    kheb nu dit
    : 1 while lus gebruikt:
    #include <iostream>
    using namespace std;

    int main()
    { int getal,tel=0,som=0;
    float gemiddelde;
    cout<<"Geef een reeks getallen in - Sluit af met een negatief getal: \n"
    <<"Geef getal: ";
    cin>>getal;
    while (getal>=0)
    {
    cout<<"Geef getal: ";
    cin>>getal;
    tel++;
    som+=getal;
    }
    gemiddelde=som/tel;
    cout<<"Gemiddelde= " <<gemiddelde;
    return 0;
    }

    maar hij trekt het negatief getal dat ik invoer nog altyd van de som af
    Last edited by Spokos; 13-10-2007 at 19:00.
    no votes  

  7. #7
    Spokos's Avatar
    Registered
    06/11/03
    Location
    Gent
    Posts
    267
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    en nu hebbik het gedaan zoals je hebt gezegd die tel ++ en die som+=getal voor die cout en die cin gezet en dan werkt het idd
    merci!

    nu snappik het echt
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in