Archief - [PROG][C++] do-while lus werkt niet:s

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
hey hier ben ik weer met alweer een tof vraagje:applause:
Ik heb het probleem dat de do-while lus niet werkt:s, ik krijg maar 1 getal te zien op het scherm bij de do while lus? Iemand die me kan zeggen hoe dit komt?:s


#include <iostream>
using namespace std;

int main()
{
int aantal,stap,getal1=1,getal2=1,getal3=1,a=0;
float totaal1=0.0,totaal2=0.0,totaal3=0.0,gemiddelde1,gemiddelde2,gemiddelde3;
cout<<"Geef waarde voor aantal: ";
cin>>aantal;
cout<<"Geef waarde voor stap: ";
cin>>stap;

cout<<"\nMet for-lus:\n";
for (int a=0;a<aantal;a++)
{
cout<<getal1<<"\t";
totaal1+=getal1;
getal1+=stap;
gemiddelde1=totaal1/aantal;
}
cout<<"\ntotaal = "<<totaal1;
cout<<"\ngemiddelde = "<<gemiddelde1<<endl;

cout<<"\nMet while-lus:\n";

while (a<aantal)
{
a++;
cout<<getal2<<"\t";
totaal2+=getal2;
getal2+=stap;
gemiddelde2=totaal2/aantal;
}
cout<<"\ntotaal = "<<totaal2;
cout<<"\ngemiddelde = "<<gemiddelde2<<endl;

cout<<"\nMet do-while-lus:\n";

do
{
a++;
cout<<getal3<<"\t";
getal3+=stap;
totaal3+=getal3;
gemiddelde3=totaal3/aantal;
}
while (a<aantal);

cout<<"\ntotaal = "<<totaal3;
cout<<"\ngemiddelde = "<<gemiddelde3;
}

MacK

Legacy Member
kheb er even heel vluchtig naar gekeken, en wat mij vooral opviel is dat je na uw for lus nergens uw variabele a terug op nul zet. Dus gaat die middenste while lus niet uitgevoerd worden, en uw do-while lus juist 1 keer, omdat na het einde van het do-block uw vergelijking false is(a<aantal ==> false want a = aantal+1 ondertussen).

[BAT] Hydra

Legacy Member
Spokos zei:
maar m'n while lus werkt, enkel de do-while niet

Zet tussen de voorlaatste en de laatste lus gewoon

a=0;

Jouw compiler zal die a in de for-lus aanzien voor een andere variabele dan de a die je in je main() gedeclareerd hebt.

Spokos

Legacy Member
nu nog 't gemiddelde en de som juist krijgen bij die laatste

Spokos

Legacy Member
stel dattik bv. voor aantal=5 invoer en voor stap=3

dan krijg ik 1 4 7 10 13
en dan geeft hij bij de do-while lus als som 50 terwijl het 35 moet zijn

Spokos

Legacy Member
waaajeeeehaa net gevonden:

kmoest dit schrijven :totaal3+=getal3-stap;
pure chance dak erop gekomen zen:)

Daedie

Legacy Member
post es niet voor elke kleine onbenulligheid liefst. Als ge wilt programmeren moet ge toch zelf leren uw fouten zoeken adhv debuggen.

En post zeker geen 7 keer achter elkaar.

Ryzer

Legacy Member
Spokos zei:
waaajeeeehaa net gevonden:

kmoest dit schrijven :totaal3+=getal3-stap;
pure chance dak erop gekomen zen:)

Programmeren doe je niet met "chance", je moet weten wat je doet. Ik raad je aan de volgende keer zelf wat na te denken, in plaats van onmiddelijk een thread te starten.

Zelf nadenken over wat er mogelijk misloopt en waarom het misloopt is noodzakelijk om een goede programmeur te worden. Dit is je zoveelste thread waarin je vraagt of wij je kunnen helpen met deze kleuteroefeningen.

Als je nu je plan al niet zelf leert trekken, wat gaat het dan worden wanneer je aan grotere projecten begint te werken?

Spokos

Legacy Member
mai sorry ze schiet me nie af, kben nog maar een beginnertje, maar kzal proberen wat minder te posten.

Ryzer

Legacy Member
Spokos zei:
mai sorry ze schiet me nie af, kben nog maar een beginnertje, maar kzal proberen wat minder te posten.

Als je mijn post nog eens naleest zal je zien dat ik je niet afschiet, maar dat ik je advies geef. Zelf zoeken naar je fouten is de beste manier om te leren programmeren. Dat wil niet zeggen dat je nooit hulp mag vragen op forums, maar je oefeningen zijn een beetje "te" basic om het "niet te snappen". Ik ben er vast van overtuigd dat je elk probleem vaarover je een thread hebt gestart zelf kan oplossen door je code aandachtig te herlezen en na te denken over wat je code exact doet. Op die manier krijg je inzicht in de programmeertaal.
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