goeie compiler nodig

Status
Niet open voor verdere reacties.

yanik

Gebruiker
Lid geworden
5 nov 2011
Berichten
316
Ik gebruik devc++ en de programma's hebben soms fouten waarvan ik niet weet waar ze vandaan komen. Ik typ de code perfect, maar krijg iets anders op het scherm. Welke compiler gebruiken jullie? Ik wil een goeie.
 
kun je een voorbeeld geven van de fouten die je krijgt?
je werkt in linux? of gebruik je iets als cygwin? ik gebruik meestal gewoon gcc(gnu c compiler).
 
kun je een voorbeeld geven van de fouten die je krijgt?
je werkt in linux? of gebruik je iets als cygwin? ik gebruik meestal gewoon gcc(gnu c compiler).

ik werk op windows.
Nou heb ik bijvoorbeeld deze code ingevoerd:
#include <iostream>
using namespace std;
int main()
{
const int MAANDEN_PER_JAAR = 12;
int maandsalaris;
int jaarsalaris = maandsalaris * MAANDEN_PER_JAAR;
cout << "Hoeveel verdien je? Toets het in" << endl;
cin >> maandsalaris;
cout << " u verdient " << jaarsalaris << " per jaar ";
cin.get();
cin.get();
}
Als maandsalaris voer ik 2 in, dus het resultaat moet zijn : 2x12=24. In plaats van dit, krijg ik 32241504 als jaarsalaris.
 
Dat is toch niet verbazend? Wat wordt de uitkomst als je doet:

Code:
int maandsalaris = 0;

Volgens mij wordt je jaarsalaris dan 0. Je berekend eerst jaarsalaris op een ongeïnitialiseerde "maandsalaris" en vervolgens ga je maandsalaris pas opvragen. Het programma heeft geen kristallen bal hoor :)
 
Code:
#include <iostream>
 using namespace std;
 int main()
 {
 const int MAANDEN_PER_JAAR = 12;
 int maandsalaris = 0;
 int jaarsalaris = maandsalaris * MAANDEN_PER_JAAR;
 cout << "Hoeveel verdien je? Toets het in" << endl;
 cin >> maandsalaris;
 cout << " u verdient " << jaarsalaris << " per jaar ";
 cin.get();
 cin.get();

wanneer we de int maandsalaris defineren geven we em meteen de waarde 0.
bovendien, hoezo staat de berekening voor de input? lijkt me dat de gebruiker eerst de waarde in moet veren voor je de berekening uit voert.
 
Roy, niet in de code van Yanik (initialisatie is niet op 0). Je berekend jaarsalaris (0 x 12) = 0. je krijgt dus altijd 0.

Jaarsalaris is niet gedefinieerd als een functie, dus ik ik begrijp niet waarom je zou verwachten dat als je 2 invoert er 24 uit komt.

Code:
#include <iostream>
 using namespace std;
 int main()
 {
 const int MAANDEN_PER_JAAR = 12;
 int maandsalaris = 0;
 cout << "Hoeveel verdien je? Toets het in" << endl;
 cin >> maandsalaris;
 int jaarsalaris = maandsalaris * MAANDEN_PER_JAAR;
 cout << " u verdient " << jaarsalaris << " per jaar ";
 cin.get();
 cin.get();

zou wel goed moeten werken.
 
Roy, niet in de code van Yanik (initialisatie is niet op 0). Je berekend jaarsalaris (0 x 12) = 0. je krijgt dus altijd 0.

Jaarsalaris is niet gedefinieerd als een functie, dus ik ik begrijp niet waarom je zou verwachten dat als je 2 invoert er 24 uit komt.

Code:
#include <iostream>
 using namespace std;
 int main()
 {
 const int MAANDEN_PER_JAAR = 12;
 int maandsalaris = 0;
 cout << "Hoeveel verdien je? Toets het in" << endl;
 cin >> maandsalaris;
 int jaarsalaris = maandsalaris * MAANDEN_PER_JAAR;
 cout << " u verdient " << jaarsalaris << " per jaar ";
 cin.get();
 cin.get();

zou wel goed moeten werken.

Hartstikke bedankt. Ik waardeer het echt. Ik heb iets nieuws geleerd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan