1. put all the numbers in an array and short it.
2. create a 2d array, the first dimension contains the number and the second dimension contains a count of the number of times the number appears. The program will have to iterate through the original array (#1 above) and maintain each array in #2.
c++ <map> will facilitate #2 above, but I'm not familiar enough with it to demonstrate its use.
Well here is what I have so far but the results are not great.
I get repeat info and it prints out -999.
Any ideas?
// Description: Program that reads in a set of positive integers
// and out puts how many times a number appears in the list.
#include<iostream>
#include<iomanip>
using namespace std;
//function prototypes
void initialize (int numbers[], int listSize);
void readNum (int numbers[], int& listSize);
void selectSort (int numbers[], int listSize);
int main()
{
int Numbers [100];
int count= 0;
int listsize = 100;
int temp;
initialize (Numbers, listsize);
cout <<"Enter a maximum of 100 positive integers ending with -999"<<endl;
readNum (Numbers, listsize);
cout <<endl;
cout <<fixed<<showpoint<<setw(7)<<"Number"<<setw(9)<<"Count"<<endl;
selectSort(Numbers, listsize);
for (int t=0; t< listsize; t++)
{
temp = Numbers[t];
for (int i=0; i < listsize;i++)
{
if (Numbers[i] == temp)
count ++;
}
cout <<setw(5)<<Numbers[t]<<setw(9)<<count<<endl;
count = 0;
}
return 0;
}
void initialize (int numbers[], int listSize)
{
int index;
int Num = 0;
for (index=0; index < 100; index++)
numbers[index] = 0;
}
void readNum (int numbers[], int&listSize)
{
int index =0;
int num =0;
listSize=0;
while (num != -999)
{
cin >>num;
numbers[index] = num;
index++;
listSize++;
}
}
void selectSort (int numbers[], int listSize)
{
int index, minIndex, smallestIndex, temp;
for (index=0; index < listSize - 1;index++)
{
smallestIndex = index;
for (minIndex = index + 1; minIndex < listSize; minIndex++)
if (numbers[minIndex] < numbers[smallestIndex])
smallestIndex = minIndex;
temp = numbers[smallestIndex];
numbers[smallestIndex] = numbers[index];
numbers[index] = temp;
}
}