Counting # of single digits with arrays?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • tman88g@gmail.com

    Counting # of single digits with arrays?

    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?

  • Scott McPhillips [MVP]

    #2
    Re: Counting # of single digits with arrays?

    tman88g@gmail.c om 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]

    Comment

    • doug turnbull

      #3
      Re: Counting # of single digits with arrays?


      tman88g@gmail.c om 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.

      Comment

      • tman88g@gmail.com

        #4
        Re: Counting # of single digits with arrays?


        Scott McPhillips [MVP] wrote:
        tman88g@gmail.c om 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

        Comment

        • Phlip

          #5
          Re: Counting # of single digits with arrays?

          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!!!


          Comment

          • tman88g@gmail.com

            #6
            Re: Counting # of single digits with arrays?

            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.c om wrote:
            Scott McPhillips [MVP] wrote:
            tman88g@gmail.c om 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

            Comment

            • tman88g@gmail.com

              #7
              Re: Counting # of single digits with arrays?

              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.c om wrote:
              Scott McPhillips [MVP] wrote:
              tman88g@gmail.c om 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

              Comment

              • Jim Langston

                #8
                Re: Counting # of single digits with arrays?


                <tman88g@gmail. comwrote in message
                news:1162358159 .425883.232920@ i42g2000cwa.goo glegroups.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:
                tman88g@gmail.c om 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
                >

                Comment

                • Jim Langston

                  #9
                  Re: Counting # of single digits with arrays?

                  >tman...@gmail. com wrote:
                  Scott McPhillips [MVP] wrote:
                  tman88g@gmail.c om 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

                  <tman88g@gmail. comwrote in message
                  news:1162358159 .425883.232920@ i42g2000cwa.goo glegroups.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<cha r>( i ) << "'s" << std::endl;
                  else
                  std::cout << "You entered " << Character[i] << " chars with the ASCII
                  value " << i << std::endl;
                  }
                  }


                  Comment

                  • Scott McPhillips [MVP]

                    #10
                    Re: Counting # of single digits with arrays?

                    tman88g@gmail.c om 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]

                    Comment

                    Working...