445,898 Members | 2,039 Online 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
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 = {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 = {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 using namespace std; void printNumDigits(int Array[]) { cout << "\nThere are " << Array << " 0's. " << endl; cout << "There are " << Array << " 1's. " << endl; cout << "There are " << Array << " 2's. " << endl; cout << "There are " << Array << " 3's. " << endl; cout << "There are " << Array << " 4's. " << endl; cout << "There are " << Array << " 5's. " << endl; cout << "There are " << Array << " 6's. " << endl; cout << "There are " << Array << " 7's. " << endl; cout << "There are " << Array << " 8's. " << endl; cout << "There are " << Array << " 9's. " << endl << endl; } int main() { int num; int numArray = {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 = {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 = {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 >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 = {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 = {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 Line; unsigned int Characters = (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( 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 = {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, which does not exist. -- Scott McPhillips [VC++ MVP] Nov 1 '06 #10

### This discussion thread is closed

Replies have been disabled for this discussion. 