Archief - [PROG][C++] vraagje:)

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Spokos

Legacy Member
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:s

#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:s. Ziet iemand de fout? of weet iemand hoe het moet? pls help me:) Ik veronderstel dat de fout bij de tel ligt?

Spokos

Legacy Member
als ik de tel verander naar -1 dan klopt het min of meer:s, maar toch niet echt exact hoor:s blijkbaar toch maar vreemd precies
logischere oplossingen mogen altyd vermeld worden:p
weet er iemand hoe ik van het gemiddelde een kommagetal kan maken?

Tyfius

Legacy Member
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.

Spokos

Legacy Member
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

Spokos

Legacy Member
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:D
merci!:p

nu snappik het echt:D
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan