Hallo, ik heb een vraagje ivm pointers en arrays. Ik ben een programma aan het schrijven voor school, en het volgende is wat ik ondertussen al heb:
#include <iostream>
#include <iomanip>
using namespace std;
void vFPrint( const int iRIJ );
int main()
{
const int iMAX_AANTAL = 10;
int iGetal;
int iGetallen[ iMAX_AANTAL ];
for( int i = 0; i < iMAX_AANTAL; i++ )
{
cout << "Geef het " << i+1 << "e getal in: ";
cin >> iGetal;
iGetallen[ iMAX_AANTAL ] = iGetal;
}
cout << endl << setw(10) << "Inhoud:" << endl;
cout << iGetallen[ iMAX_AANTAL ];
cout << endl;
cin.get();
char chVerwijder;
do
{
cout << endl << endl << "Wilt u een getal verwijderen?? (J/N)" ;
cin >> chVerwijder;
if(chVerwijder == 'J' || chVerwijder == 'j')
{
int iVerwijder;
cout << "Geef het getal in dat je wil verwijderen: ";
cin >> iVerwijder;
int *p;
p = iGetallen;
for( int p = 0; p < iMAX_AANTAL ; p++)
{
if(*p == iVerwijder)
{
iGetallen.erase(p);
iGetallen.push_back(0);
}
}
}
if(chVerwijder == 'N' || chVerwijder == 'n')
{
cout << "De ingegeven waardes zijn niet gewijzigd."<< endl<< endl;
}
}
while( chVerwijder != 'J' && chVerwijder != 'j' && chVerwijder != 'n' && chVerwijder != 'N' );
cout << endl << setw(10)<< "Inhoud:" << endl;
cout << iGetallen[ iMAX_AANTAL ]
cout <<endl;
cin.get();
}
Dus de bedoeling is dat ik een array maak bestaande uit getallen die de gebruiker gaat invoeren. Als dit eenmaal is ingegeven, komt er de vraag: wil je een waarde uit de array gaan verwijderen, en zo ja, welke? Als ze eenmaal verwijderd zijn, moeten ze vervangen worden door 0, en moeten de anderen getallen 1 plaats naar voor opschuiven.
Dus bovenstaande code heb ik rap ineen geflatst, nu heb ik nog 3 fouten die ik niet kan vinden (of verbeteren). Als die 3 fouten eenmaal weg zijn, hoe moet ik dan het resultaat op het scherm krijgen met de void vFPrint( const int iRIJ ) ??
Hopelijk kunnen jullie mij verder helpen, alvast bedankt
greetz
#include <iostream>
#include <iomanip>
using namespace std;
void vFPrint( const int iRIJ );
int main()
{
const int iMAX_AANTAL = 10;
int iGetal;
int iGetallen[ iMAX_AANTAL ];
for( int i = 0; i < iMAX_AANTAL; i++ )
{
cout << "Geef het " << i+1 << "e getal in: ";
cin >> iGetal;
iGetallen[ iMAX_AANTAL ] = iGetal;
}
cout << endl << setw(10) << "Inhoud:" << endl;
cout << iGetallen[ iMAX_AANTAL ];
cout << endl;
cin.get();
char chVerwijder;
do
{
cout << endl << endl << "Wilt u een getal verwijderen?? (J/N)" ;
cin >> chVerwijder;
if(chVerwijder == 'J' || chVerwijder == 'j')
{
int iVerwijder;
cout << "Geef het getal in dat je wil verwijderen: ";
cin >> iVerwijder;
int *p;
p = iGetallen;
for( int p = 0; p < iMAX_AANTAL ; p++)
{
if(*p == iVerwijder)
{
iGetallen.erase(p);
iGetallen.push_back(0);
}
}
}
if(chVerwijder == 'N' || chVerwijder == 'n')
{
cout << "De ingegeven waardes zijn niet gewijzigd."<< endl<< endl;
}
}
while( chVerwijder != 'J' && chVerwijder != 'j' && chVerwijder != 'n' && chVerwijder != 'N' );
cout << endl << setw(10)<< "Inhoud:" << endl;
cout << iGetallen[ iMAX_AANTAL ]
cout <<endl;
cin.get();
}
Dus de bedoeling is dat ik een array maak bestaande uit getallen die de gebruiker gaat invoeren. Als dit eenmaal is ingegeven, komt er de vraag: wil je een waarde uit de array gaan verwijderen, en zo ja, welke? Als ze eenmaal verwijderd zijn, moeten ze vervangen worden door 0, en moeten de anderen getallen 1 plaats naar voor opschuiven.
Dus bovenstaande code heb ik rap ineen geflatst, nu heb ik nog 3 fouten die ik niet kan vinden (of verbeteren). Als die 3 fouten eenmaal weg zijn, hoe moet ik dan het resultaat op het scherm krijgen met de void vFPrint( const int iRIJ ) ??
Hopelijk kunnen jullie mij verder helpen, alvast bedankt

greetz