•
•
•
•
What is DaniWeb IT Discussion Community?
You're currently browsing the C++ section within the Software Development category of DaniWeb, a massive community of 391,711 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 3,400 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our C++ advertiser:
Views: 2452 | Replies: 6 | Solved
![]() |
•
•
Join Date: Aug 2005
Location: near St Louis, Missouri, USA
Posts: 10,548
Reputation:
Rep Power: 36
Solved Threads: 860
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.
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.
•
•
Join Date: Feb 2006
Posts: 4
Reputation:
Rep Power: 0
Solved Threads: 0
•
•
•
•
Originally Posted by Ancient Dragon
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;
}
}
•
•
Join Date: Aug 2005
Location: near St Louis, Missouri, USA
Posts: 10,548
Reputation:
Rep Power: 36
Solved Threads: 860
suggestion: read the 100 numbers from a file instead of entering them from the keyboard.
#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);
temp = Numbers[0];
count = 1;
for (int t=1; t< listsize; t++)
{
if(Numbers[t] == temp)
count++;
else
{
cout << "temp = " << temp << " total = " << count;
temp = Numbers[t];
count = 1;
}
}
// display count of final number
cout << "temp = " << temp << " total = " << count;
return 0;
}
void initialize (int numbers[], int listSize)
{
int index;
int Num = 0;
for (index=0; index < 100; index++)
use listSize in above loop
numbers[index] = 0;
}
void readNum (int numbers[], int&listSize)
{
int index =0;
int num =0;
listSize=0;
You don't need variable index. use listSize instead
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;
}
} You have to decrement listSize if you don't want it to print -999. eg
Show the output.
Or store the numbers in a file and use your OS's redirection capabilities:
cout <<"Enter a maximum of 100 positive integers ending with -999"<<endl;
readNum (Numbers, listsize);
listSize--;
cout <<endl;
cout <<fixed<<showpoint<<setw(7)<<"Number"<<setw(9)<<"Count"<<endl;•
•
•
•
I get repeat info
•
•
•
•
suggestion: read the 100 numbers from a file instead of entering them from the keyboard.
C:\>count_numbers <numbers.txt
dwk
Seek and ye shall find.
"Only those who will risk going too far can possibly find out how far one can go."
-- TS Eliot.
"I have not failed. I've just found 10,000 ways that won't work."
-- Thomas Alva Edison
"The only real mistake is the one from which we learn nothing."
-- John Powell
Seek and ye shall find.
"Only those who will risk going too far can possibly find out how far one can go."
-- TS Eliot.
"I have not failed. I've just found 10,000 ways that won't work."
-- Thomas Alva Edison
"The only real mistake is the one from which we learn nothing."
-- John Powell
•
•
Join Date: Feb 2006
Posts: 4
Reputation:
Rep Power: 0
Solved Threads: 0
Thanks guys. Your ideas worked.
•
•
•
•
Originally Posted by dwks
You have to decrement listSize if you don't want it to print -999. eg
cout <<"Enter a maximum of 100 positive integers ending with -999"<<endl; readNum (Numbers, listsize); listSize--; cout <<endl; cout <<fixed<<showpoint<<setw(7)<<"Number"<<setw(9)<<"Count"<<endl;
Show the output.
Or store the numbers in a file and use your OS's redirection capabilities:
C:\>count_numbers <numbers.txt
![]() |
•
•
•
•
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
•
•
•
•
•
•
•
•
DaniWeb C++ Marketplace
- number of times each number in array occurs? (C)
- Frequency Counter (C)
- counts how many times the number 5 appears in array? (C++)
Other Threads in the C++ Forum
- Previous Thread: [urgent]Error
- Next Thread: making labels with c++



Linear Mode