Hi,
I have a problem with the use of vectors.
As you can see, the program asks the user for a row of positive whole numbers. These numbers will by put in a vector called "getallen".
Than the numbers in "getallen" will be sorted by the function "sorteerint" and number of occurence is counted and printed on the screen.
By testing some few things, I discovered that the numbers of vector "getallen" aren't copied to vector "v1"..
Could someone give me a hint about what I should change or add ?
#include <iostream>
#include <vector>
#include <iomanip>
using namespace std;
void drukintro ();
void geef_rij( vector<int> getallen );
void sorteerint( vector<int> getallen );
void voorkomentellen ( vector<int> getallen , vector<int> getelde_rij, vector<int> voorkomen );
void printintrij( vector<int> getelde_rij, vector<int> voorkomen );
void drukintro ()
{
int i;
cout << "Dit is een aangepaste versie van Lab9Opgave5 waarbij" << endl
<< "de arrays vervangen zijn door vectors" << endl << endl
<< "Dit is een programma dat een rij van getallen sorteert" << endl
<< "en het voorkomen van elk getal telt," << endl
<< "en daarna van hoog naar laag op het scherm drukt." << endl;
for ( i=0; i<=54; i++)
{
cout << "-";
}
cout << endl << endl;
}
void geef_rij( vector<int> getallen )
{
int getal;
cout << "Enter a row of positive whole numbers followed by a negatieve whole number"<< endl;
cin >> getal;
while (getal > 0)
{
getallen.push_back(getal);
cin >> getal;
}
}
void sorteerint( vector<int> getallen )
{
unsigned int i, j, temp;
for (i=0; i<getallen.size( ); i++)
for (j=getallen.size( )-1; j>i; j--)
{
cout << getallen[j] << endl;
if (getallen[j-1]>getallen[j])
{
temp=getallen[j];
getallen[j]=getallen[j-1];
getallen[j-1]=temp;
cout << getallen[i];
cout << temp;
}
}
}
void voorkomentellen ( vector<int> getallen , vector<int> getelde_rij, vector<int> voorkomen )
{
unsigned int i, j=0, getal1, getal2, count=1;
for (i=0; i<getallen.size( ); i++)
{
getal1 = getallen[i];
cout << getal1;
getal2 = getallen[i+1];
cout << getal2;
if (getal1 == getal2)
{
count++;
}
else
{
getelde_rij[j] = getal1;
voorkomen[j] = count;
count=1;
j++;
}
}
}
void printintrij( vector<int> getelde_rij, vector<int> voorkomen )
{
unsigned int i;
cout.setf(ios::left);
cout << "\nN Voorkomen\n";
for (i=0; i<getelde_rij.size( ); i++)
cout << setw(5) << getelde_rij[i] << voorkomen[i] << endl;
cout << endl;
}
int main ()
{
vector<int> v1, v2, v3;
drukintro ();
geef_rij ( v1 );
cout << endl;
sorteerint ( v1);
voorkomentellen ( v1, v2 , v3);
printintrij( v2 , v3);
}