int main (int argc, char * const argv[]) {
double cijfer;
int v=0, o=0, aant=0;
cout << “Toets een ‘0’ om het programma te beëindigenn”;
do
{
cout << “Geef tentamen cijfer:”;
cin >> cijfer;
cin.get();
if (cijfer = 0) continue;
if (cijfer < 1.0 || cijfer > 10.0)
cout << “foutieve invoer!n”;
else
{
aant++;
if (cijfer >= 5.5) v++;
else o++;
}
} while (cijfer != 0);
cout << “Er zijn " << aant << " cijfers ingevoerd.n”;
cout << “Daar van zijn " << v << " cijfers voldoende.n”;
cout << "De overige " << o << “cijfers zijn onvoldoende.n”;
return 0;
}[/color:cc9e1fd939]
't is nog maar een oefenopdrachtje, ik denk dat de verwachte output vrij duidelijk is. Het programma moet stoppen bij invoer van een ‘0’, een melding geven wanneer het getal ongeldig is en anders tellen hoeveel cijfers er zijn ingevoerd. Daar
naast hoeveel van deze cijfers er voldoende en onvoldoende zijn.
Gek genoeg is mijn output constant:
[i:cc9e1fd939]Geef tentamen cijfer:5
foutieve invoer!
Er zijn 0 cijfers ingevoerd.
Daar van zijn 0 cijfers voldoende.
De overige 0cijfers zijn onvoldoende.
H4141 has exited with status 0.[/i:cc9e1fd939]
Als ik [i:cc9e1fd939]if (cijfer = 0) continue; [/i:cc9e1fd939] weghaal stopt de loop niet gelijk, maar krijg ik nog steeds bij elk getal de melding “foutieve invoer!” Een check om te kijken wat de waarde van “cijfer” is, geeft de verwachte waarde.
Ik sta voor een raadsel, waarom reageert het programma nou anders dan ik verwacht?
Komt gelijk een tweede vraag op nu ik ok “voorbeeld” klik. Waarom is m’n Layout nou verpest? Alles staat nu strak onder elkaar zonder inspring. Nou goed, beetje programmeer snapt dit waarschijnlijk als nog wel.
[quote:f3fc798803="Undaunted"]
if (cijfer = 0) continue;
if (cijfer < 1.0 || cijfer > 10.0)
[/quote:f3fc798803]
if (cijfer = 0) is een assigment, geen vergelijking .Oftewel je assigned 0 aan cijfer, daarna test je of cijfer kleiner dan 1 (is dus altijd true), dus de foutmelding.
Het kan overigens helpen om bij 'raadsels' wat extra output te genereren over de cruciale variabelen ten einde te ontdekken waar iets fout gaat (of beter waar iets anders gaat dan je verwacht). Als je dit niet leert krijg je zeker problemen zodra de code complexer wordt.
[quote:237c1ba2a8="Undaunted"]Komt gelijk een tweede vraag op nu ik ok "voorbeeld" klik. Waarom is m'n Layout nou verpest? Alles staat nu strak onder elkaar zonder inspring. Nou goed, beetje programmeer snapt dit waarschijnlijk als nog wel.[/quote:237c1ba2a8]
Je moet preformatted text in een code blok zetten:
[code:1:237c1ba2a8] #include <iostream>
using namespace std;
int main (int argc, char * const argv[]) {
double cijfer;
int v=0, o=0, aant=0;
cout << “Toets een ‘0’ om het programma te beëindigenn”;
do
{
[/code:1:237c1ba2a8]
[quote:c9ad72e6d3="BIT"][quote:c9ad72e6d3="koen"]Je moet preformatted text in een code blok zetten[/quote:c9ad72e6d3]
Eum ? :?[/quote:c9ad72e6d3]
Dit was een reactie op de TS die problemen had om zijn voorbeeldcode met indents, etc te laten zien.
[quote:a216898668="koen"]Dit was een reactie op de TS die problemen had om zijn voorbeeldcode met indents, etc te laten zien.[/quote:a216898668]
Ah zo :) .