even/oneven nummers optellen

  • Onderwerp starter Onderwerp starter Cody
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Cody

Gebruiker
Lid geworden
7 aug 2011
Berichten
20
Ik ben net begonnen met c++. Nu hebben we een opdracht gekregen om 5 cijfers te vragen en daarna de som van alle oneven cijfers op het scherm te schrijven.

Ik snap niet echt hoe ik verder moet werken met alleen de oneven cijfers. Kan iemand me helpen? :confused:

Code:
int main(){
	/*Schrijf een programma dat je om 5 getallen vraagt. Vervolgens toon je de som van alle
	oneven getallen op het scherm.*/

	int a, b, c, d, e;
	bool  b1, b2, b3, b4, b5;

	cout << "Getal 1: "; cin >> a; cin.get();
	cout << "Getal 2: "; cin >> b; cin.get();
	cout << "Getal 3: "; cin >> c; cin.get();
	cout << "Getal 4: "; cin >> d; cin.get();
	cout << "Getal 5: "; cin >> e; cin.get();

	if (a%2 == 0)
		b1 = 1;
	else
		b1 = 0;

	if (b%2 == 0)
		b2 = 1;
	else
		b2 = 0;

	if (c%2 == 0)
		b3 = 1;
	else
		b3 = 0;

	if (d%2 == 0)
		b3 = 1;
	else
		b3 = 0;

	if (e%2 == 0)
		b4 = 1;
	else
		b4 = 0;


	cin.get();
	return 0;
}

Alvast bedankt! :)
 
even uit de losse pols:

Code:
int totaal;
int input;
for (int i;i<6;i++)
{
 cout << "Getal " + i; cin >> input; cin.get();
 if (input%2)
 {
  totaal = totaal + input;
 }
}
 
Persoonlijk zou ik de code van wampier herschrijven naar het volgende:

[cpp]
const int MAX_COUNTER = 5;
int total = 0, counter = 0, input;

do
{
if (std::cin >> input)
{
total += input & 0x01 ? input : 0;
}
else
{
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

--counter;
}
}
while (++counter < MAX_COUNTER);
[/cpp]

Op deze manier gaat het programma ook verder wanneer er per ongeluk verkeerde data (bijvoorbeeld een letter) wordt ingevoerd.

edit: je moet dan wel bovenaan "#include <limits>" toevoegen
 
Laatst bewerkt:
@CoD_NL: Je hebt natuurlijk absoluut gelijk dat er veel af te doen is aan mijn code. Echter moet je ook een beetje rekening houden met het niveau van de vraagsteller. Alleen lijn 8 al bevat 3 "gevorderde" statements:

+= increase
Ternairy keuze statement
gebaseerd op een binary "AND" van bit 1 voor het vaststellen van oneven

Nu ben ik natuurlijk ook wel een voorstander van het feit dat mensen meteen zoveel mogelijk de syntax goed aanleren en je code is een mooi staaltje C++ techniek. Aan de andere kant is het ook wel een beetje overweldigend als je net "hello world" hebt gedaan :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan