advertentie

Dit forum is niet langer actief. Voor vragen kun je voortaan terecht in de Vraag & Antwoord-rubriek van PCMweb.nl

 
Oud 16 August 2009, 15:03   #1
schoolvraag
Just Joined!
 
Geregistreerd: 16 August 2009
Berichten: 1
Standaard C++ Programma

Als ik het volgende programma run wordt er gevraagd om een aantal getallen in te geven die vervolgens worden gesplitst in twee groepen: de even & de oneven getallen. Maar het laatste getal wordt steeds vervangen door een willekeurig getal in de orde van de miljoenen.

#include<iostream>
#include<cmath>
using namespace std;

int main() {
const int MAX = 10;
int getallen[MAX];
int aantal;

// aantal elementen opvragen
cout << "Hoeveel getallen bevat de tabel? (Maximum 10) " << endl;
cin >> aantal;
// controle aantal
while (aantal < 0 || aantal > MAX) {
cout << "Verkeerd aantal! Geef nieuw: ";
cin >> aantal;
}
// tabel inlezen
for (int index = 0; index < aantal; index++){
cout << "Geef het " << (index + 1)
<< "e getal: ";
cin >> getallen[index];
}
/*
int pl_grootste;
int help;
for (int i = 0; i < aantal -1; i++) {
// grootste in resterende tabel bepalen
pl_grootste = i;
for (int j = i+1; j < aantal; j++) {
if (getallen[j] > getallen[pl_grootste])
pl_grootste = j;
}
// wisselen
help = getallen[i];
getallen[i] = getallen[pl_grootste];
getallen[pl_grootste] = help;
}*/
// even & oneven uitsorteren
int even[aantal];
int oneven[aantal];

for (int i = 0; i < aantal-1; i++){
if(getallen[i]==1){
even[i] = 0;
oneven[i] = 1;}
else {
if (getallen[i]%2==0){
even[i] = getallen[i];
oneven[i] = 0;

}else{
even[i] = 0;
oneven[i] = getallen[i];
}
}
}

//uitschrijven
cout << "De even getallen zijn ";
for (int i = 0; i < aantal; i++) {
while(even[i]==0){
i++;}
cout << even[i] << " ";
}

cout << endl;

cout << "De oneven getallen zijn ";
for (int i = 0; i < aantal-1; i++) {
while(oneven[i]==0){
i++;}
if (oneven[i]==1){
cout << "1 ";}
else {
cout << oneven[i] << " ";}
}
cout << endl;
cout << "Getallen reeks: ";
for (int i = 0; i < aantal; i++) {
cout << getallen[i] << " ";
}
return 0;
}


Weet iemand waar de fout zit?

Mvg
schoolvraag is offline   Met citaat antwoorden
Oud 16 August 2009, 21:13   #2
gvanvoor
PCM Lord
 
gvanvoor's schermafbeelding
 
Geregistreerd: 26 January 2006
Locatie: De gezelligste stad ter wereld: Gent
Berichten: 928
Standaard

Dat kan veel korter (btw witruimte gebruiken verhoogt de leesbaarheid van code in grote mate):
Code:
#include<iostream>
#include<cmath>
using namespace std;

int main() {
    const int MAX = 10;
    int getallen[MAX];
    int aantal;

    // aantal elementen opvragen
    cout << "Hoeveel getallen bevat de tabel? (Maximum 10) " << endl;
    cin >> aantal;

    // controle aantal
    while (aantal < 0 || aantal > MAX) {
        cout << "Verkeerd aantal! Geef nieuw: ";
        cin >> aantal;
    }

    // tabel inlezen
    for (int index = 0; index < aantal; index++) {
        cout << "Geef het " << (index + 1)  << "e getal: ";
        cin >> getallen[index];
    }

    // oneven getallen uitschrijven
    for (int index = 0; index < aantal; ++index) {
        if (getallen[index] % 2) {
            cout << getallen[index] << " ";
        }
    }
    cout << endl;

    // even getallen uitschrijven
    for (int index = 0; index < aantal; ++index) {
        if (getallen[index] % 2 == 0) {
            cout << getallen[index] << " ";
        }
    }
    cout << endl;

    return 0;
}
En als je er een echt C++ programma van wil maken vervang je die array door een vector.
__________________
If you want to work on your computer: buy a PC. If you want to do work on your computer: buy a Mac.

Laatst gewijzigd door gvanvoor : 16 August 2009 om 21:17
gvanvoor is offline   Met citaat antwoorden
Antwoord


Discussietools
Weergave

Regels voor berichten
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Forumnavigatie


Alle tijden zijn GMT +1. Het is nu 21:26.



Powered by vBulletin Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Nederlandse vBulletin-vertaling door Alacer beschikbaar gesteld door Applinet.