Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Huiswerkvragen: Exacte vakken (https://forum.scholieren.com/forumdisplay.php?f=17)
-   -   C++ (https://forum.scholieren.com/showthread.php?t=1542972)

Supersuri 13-02-2007 14:45

C++
 
Ik moet een C++ programma schrijven dat van een reeks getallen het gemiddelde uit kan rekenen. Hij geeft geen errors bij compiling maar loopt wel vast. Ik denk dat het aan de while ligt. Weet iemand wat ik fout gedaan heb.

Dit is mijn programma.

#include <iostream.h> ;

int main()

{ int getal ;
int som ;
int gemiddelde ;
int teller ;

cout << " Voer een reeks getallen in, sluit af met een 0." ;
while (getal!=0) ;
{ cin >> getal ;
teller++ ;
som = som + getal;
}

gemiddelde = som / teller ;

cout << " het gemiddelde is (gemiddelde) " ;

return 0 ;
}

ILUsion 13-02-2007 16:09

Achter de voorwaarde bij while mag je volgens mij geen puntkomma plaatsen, omdat de compiler anders kan denken dat de lus afgelopen is, en je wel steeds eenmaal je eigenlijke lus doorloopt, maar dat het daarbij stopt.

Rob 13-02-2007 17:00

Geen ; achter while, nee.

includes hoeven ook geen ; erachter en zelf zou ik met exit(0) eindigen, maar da's niet per sé nodig.

Supersuri 13-02-2007 17:12

Ik heb die puntkomma's weggehaalt, krijg ik:

error in declaration function main().

Rob wat is het verschil tussen return 0 en exit(0) eigenlijk?

Vrolijk 13-02-2007 18:22

Dan heb je waarschijnlijk teveel weggehaald.

Je moet de puntkomma achter
while (getal!=0) ;
weghalen.

Momenteel staat er:
"Zolang getal ongelijk is aan 0, doe dan niets."
En dat "nietsdoen" kan het programma heeeeeeeeel lang volhouden.

Verder moet je de puntkomma's laten staan (behalve waarschijnlijk die aan het eind van de include).

Rob 13-02-2007 18:40

Citaat:

Vrolijk schreef op 13-02-2007 @ 19:22 :
Dan heb je waarschijnlijk teveel weggehaald.

Je moet de puntkomma achter
while (getal!=0) ;
weghalen.

Momenteel staat er:
"Zolang getal ongelijk is aan 0, doe dan niets."
En dat "nietsdoen" kan het programma heeeeeeeeel lang volhouden.

Verder moet je de puntkomma's laten staan (behalve waarschijnlijk die aan het eind van de include).

Ja, mijn compiler ging op de ; achter de include ook op z'n bek.

Citaat:

Supersuri schreef op 13-02-2007 @ 18:12 :

Rob wat is het verschil tussen return 0 en exit(0) eigenlijk?

In feite is het verschil altijd dit:
Return eindigt de huidige methode of block met code en returned een bepaalde waarde en geeft het 'bestuur' terug aan de roepende functie.
Exit eindigt ALTIJD het programma.

In de huidige context zijn exit en return hetzelfde (de OS is immers de aanroepende 'functie'), maar over het algemeen is het netter om exit(0) te gebruiken als je het programma zonder fouten stopt, exit(1) als er een abend is en return n als je wilt dat je functie een bepaalde waarde terugkeert zonder het programma te stoppen.

(De waarde die exit terugkeert is later weer op te halen, trouwens)


Alle tijden zijn GMT +1. Het is nu 09:09.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.