By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
445,898 Members | 2,039 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 445,898 IT Pros & Developers. It's quick & easy.

Counting # of single digits with arrays?

P: n/a
I've been trying to learn arrays, and I was wondering how one would go
about making a program that would take from the user as many single
digit numbers (0 - 9) as the user wants to enter, and then the program
would output the number of times each digit was inputted, (and only the
digits that were inputted). I've been toying around with this all day,
but can't seem to nail it. I've been trying to use an array as a
counter, and then putting it in a loop. Not a whole lot of luck so far,
but I'm probably doing it wrong.. Any ideas?

Nov 1 '06 #1
Share this Question
Share on Google+
9 Replies


P: n/a
tm*****@gmail.com wrote:
I've been trying to learn arrays, and I was wondering how one would go
about making a program that would take from the user as many single
digit numbers (0 - 9) as the user wants to enter, and then the program
would output the number of times each digit was inputted, (and only the
digits that were inputted). I've been toying around with this all day,
but can't seem to nail it. I've been trying to use an array as a
counter, and then putting it in a loop. Not a whole lot of luck so far,
but I'm probably doing it wrong.. Any ideas?
Is your problem with the algorithm or with the control flow?

int array[10] = {0};
....get user number 0...9
array[user_number]++;

It sounds like homework, so show what you've got if you need more help.

--
Scott McPhillips [VC++ MVP]

Nov 1 '06 #2

P: n/a

tm*****@gmail.com wrote:
I've been trying to learn arrays, and I was wondering how one would go
about making a program that would take from the user as many single
digit numbers (0 - 9) as the user wants to enter, and then the program
would output the number of times each digit was inputted, (and only the
digits that were inputted). I've been toying around with this all day,
but can't seem to nail it. I've been trying to use an array as a
counter, and then putting it in a loop. Not a whole lot of luck so far,
but I'm probably doing it wrong.. Any ideas?
Maybe you could post your source code. You might be on the right track,
but could have some misconceptions about how to proceed. It sounds like
you might have idea.

Nov 1 '06 #3

P: n/a

Scott McPhillips [MVP] wrote:
tm*****@gmail.com wrote:
I've been trying to learn arrays, and I was wondering how one would go
about making a program that would take from the user as many single
digit numbers (0 - 9) as the user wants to enter, and then the program
would output the number of times each digit was inputted, (and only the
digits that were inputted). I've been toying around with this all day,
but can't seem to nail it. I've been trying to use an array as a
counter, and then putting it in a loop. Not a whole lot of luck so far,
but I'm probably doing it wrong.. Any ideas?

Is your problem with the algorithm or with the control flow?

int array[10] = {0};
...get user number 0...9
array[user_number]++;

It sounds like homework, so show what you've got if you need more help.

--
Scott McPhillips [VC++ MVP]
The algorithm wasn't the problem, so I guess it was the control flow?
I'm just trying to practice using arrays as I have a test coming soon.
I think I may have my problems figured out all anyways. I will post
everything up if I run into more problems. Thanks

Nov 1 '06 #4

P: n/a
tman88g wrote:
I've been trying to learn arrays, and I was wondering how one would go
about making a program that would take from the user as many single
digit numbers (0 - 9) as the user wants to enter, and then the program
would output the number of times each digit was inputted, (and only the
digits that were inputted). I've been toying around with this all day,
but can't seem to nail it. I've been trying to use an array as a
counter, and then putting it in a loop. Not a whole lot of luck so far,
but I'm probably doing it wrong.. Any ideas?
A hint:

++array['7' - '0'];

Replace one of those constants with one of your input variables.

--
Phlip
http://www.greencheese.us/ZeekLand <-- NOT a blog!!!
Nov 1 '06 #5

P: n/a
ughh, the same problem has been resurfacing. Everything compiles and
executes, but I get some debug error. "Run-Time Check Failure #2 -
Stack around the variable 'numArray' was corrupted." I was getting some
other run-time error message before, so I wasn't sure what I was doing
wrong. All I have left that I want to figure out is how to output only
the count of the digits that are entered, but I think I have the basic
idea covered. Here is my code, (don't be too hard)...

#include <iostream>
using namespace std;

void printNumDigits(int Array[])
{
cout << "\nThere are " << Array[0] << " 0's. " << endl;
cout << "There are " << Array[1] << " 1's. " << endl;
cout << "There are " << Array[2] << " 2's. " << endl;
cout << "There are " << Array[3] << " 3's. " << endl;
cout << "There are " << Array[4] << " 4's. " << endl;
cout << "There are " << Array[5] << " 5's. " << endl;
cout << "There are " << Array[6] << " 6's. " << endl;
cout << "There are " << Array[7] << " 7's. " << endl;
cout << "There are " << Array[8] << " 8's. " << endl;
cout << "There are " << Array[9] << " 9's. " << endl << endl;
}

int main()
{
int num;
int numArray[10] = {0};

do
{
cout << "Enter an one-digit number, or 10 to quit: ";
cin >num;

numArray[num]++;

} while ( num <= 9 );
if ( num = 10 )
{
printNumDigits(numArray);
}

else if ( num 10 )
{
cout << "One-digit numbers only! " << endl << endl;
}

return 0;
}


tman...@gmail.com wrote:
Scott McPhillips [MVP] wrote:
tm*****@gmail.com wrote:
I've been trying to learn arrays, and I was wondering how one would go
about making a program that would take from the user as many single
digit numbers (0 - 9) as the user wants to enter, and then the program
would output the number of times each digit was inputted, (and only the
digits that were inputted). I've been toying around with this all day,
but can't seem to nail it. I've been trying to use an array as a
counter, and then putting it in a loop. Not a whole lot of luck so far,
but I'm probably doing it wrong.. Any ideas?
>
Is your problem with the algorithm or with the control flow?

int array[10] = {0};
...get user number 0...9
array[user_number]++;

It sounds like homework, so show what you've got if you need more help.

--
Scott McPhillips [VC++ MVP]

The algorithm wasn't the problem, so I guess it was the control flow?
I'm just trying to practice using arrays as I have a test coming soon.
I think I may have my problems figured out all anyways. I will post
everything up if I run into more problems. Thanks
Nov 1 '06 #6

P: n/a
As soon as I ask around for possible solutions, I end up solving the
problem myself. It figures... Thanks for the help anyways guys.
tman...@gmail.com wrote:
Scott McPhillips [MVP] wrote:
tm*****@gmail.com wrote:
I've been trying to learn arrays, and I was wondering how one would go
about making a program that would take from the user as many single
digit numbers (0 - 9) as the user wants to enter, and then the program
would output the number of times each digit was inputted, (and only the
digits that were inputted). I've been toying around with this all day,
but can't seem to nail it. I've been trying to use an array as a
counter, and then putting it in a loop. Not a whole lot of luck so far,
but I'm probably doing it wrong.. Any ideas?

>
Is your problem with the algorithm or with the control flow?
>
int array[10] = {0};
...get user number 0...9
array[user_number]++;
>
It sounds like homework, so show what you've got if you need more help.
>
--
Scott McPhillips [VC++ MVP]
The algorithm wasn't the problem, so I guess it was the control flow?
I'm just trying to practice using arrays as I have a test coming soon.
I think I may have my problems figured out all anyways. I will post
everything up if I run into more problems. Thanks
Nov 1 '06 #7

P: n/a

<tm*****@gmail.comwrote in message
news:11**********************@i42g2000cwa.googlegr oups.com...
As soon as I ask around for possible solutions, I end up solving the
problem myself. It figures... Thanks for the help anyways guys.
You did figure to use == isntead of = in your if statement right?
>

>tman...@gmail.com wrote:
Scott McPhillips [MVP] wrote:
tm*****@gmail.com wrote:
I've been trying to learn arrays, and I was wondering how one
would go
about making a program that would take from the user as many single
digit numbers (0 - 9) as the user wants to enter, and then the
program
would output the number of times each digit was inputted, (and only
the
digits that were inputted). I've been toying around with this all
day,
but can't seem to nail it. I've been trying to use an array as a
counter, and then putting it in a loop. Not a whole lot of luck so
far,
but I'm probably doing it wrong.. Any ideas?


Is your problem with the algorithm or with the control flow?

int array[10] = {0};
...get user number 0...9
array[user_number]++;

It sounds like homework, so show what you've got if you need more
help.

--
Scott McPhillips [VC++ MVP]

The algorithm wasn't the problem, so I guess it was the control flow?
I'm just trying to practice using arrays as I have a test coming soon.
I think I may have my problems figured out all anyways. I will post
everything up if I run into more problems. Thanks

Nov 1 '06 #8

P: n/a
>tman...@gmail.com wrote:
Scott McPhillips [MVP] wrote:
tm*****@gmail.com wrote:
I've been trying to learn arrays, and I was wondering how one
would go
about making a program that would take from the user as many single
digit numbers (0 - 9) as the user wants to enter, and then the
program
would output the number of times each digit was inputted, (and only
the
digits that were inputted). I've been toying around with this all
day,
but can't seem to nail it. I've been trying to use an array as a
counter, and then putting it in a loop. Not a whole lot of luck so
far,
but I'm probably doing it wrong.. Any ideas?


Is your problem with the algorithm or with the control flow?

int array[10] = {0};
...get user number 0...9
array[user_number]++;

It sounds like homework, so show what you've got if you need more
help.

--
Scott McPhillips [VC++ MVP]

The algorithm wasn't the problem, so I guess it was the control flow?
I'm just trying to practice using arrays as I have a test coming soon.
I think I may have my problems figured out all anyways. I will post
everything up if I run into more problems. Thanks

<tm*****@gmail.comwrote in message
news:11**********************@i42g2000cwa.googlegr oups.com...
As soon as I ask around for possible solutions, I end up solving the
problem myself. It figures... Thanks for the help anyways guys.
Please don't top post in this newsgroup. Okay, now that you got it, I would
of done it a bit different.

I would of had the user input a whole string, then go through the stream
adding up the digits. What if you wanted to see how many of any character
they put int?

Pseudo code:

std::string Line;
std::cout << "Enter a line:: ";
std::cin >Line;

unsigned int Characters[256] = (0);
// Exercise for the reader, use a std::vector instead and preallocate 256
spaces

for ( int i = 0; i < Line.length(); ++i )
{
Characters[Line[i]]++;
}

for ( int i = 0; i < 256; ++i )
{
if ( Characters[i] 0 )
{
if ( i >= 32 && i < 128 )
std::cout << "You entered " << Characters[i] << " " <<
static_cast<char>( i ) << "'s" << std::endl;
else
std::cout << "You entered " << Character[i] << " chars with the ASCII
value " << i << std::endl;
}
}
Nov 1 '06 #9

P: n/a
tm*****@gmail.com wrote:
int num;
int numArray[10] = {0};

do
{
cout << "Enter an one-digit number, or 10 to quit: ";
cin >num;

numArray[num]++;

} while ( num <= 9 );
You've got a bug here that will cause an out-of-bounds access error. If
the user enters 10 your code attempts to increment numArray[10], which
does not exist.

--
Scott McPhillips [VC++ MVP]

Nov 1 '06 #10

This discussion thread is closed

Replies have been disabled for this discussion.