944,033 Members | Top Members by Rank

Ad:
  • C++ Discussion Thread
  • Unsolved
  • Views: 1475
  • C++ RSS
Feb 1st, 2007
0

Help in program

Expand Post »
A container that holds 50 distinct integers has two ends: top and bottom. When an input integer matches one of the integers in the container, it is then moved to the top, and all the integers above the matched integer are moved down to fill the gap in the container (keeping the same order). When none of the integers in the container matches the input value, the bottom integer is discarded, the remaining integers are moved down to fill the gap (keeping the same order), and the input integer is inserted on top.
Write a C++ program to implement the above problem. Fill the initial container with distinct random integers in the range 0 to 99. Prompt the user to enter an integer, output the updated container. Repeat until the user enters a (any) negative value.

I got to generating the different numbers and output them but I don't know how to input an integer and compare it to those numbers.
If anyone has an idea let me know thanks.


Here is my code and the ouput:
C++ Syntax (Toggle Plain Text)
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9. int number;
  10. srand((unsigned)time(0));
  11. int random_integer;
  12. for(int index=0; index<50; index++)
  13. {
  14. random_integer =(rand()%99)+0;
  15. cout << random_integer << endl;
  16. }
  17. cout<< " Enter a number between 0 & 99: ";
  18. cin>>number;
  19. }
output:

93
85
63
42
77
70
56
45
69
54
57
39
63
21
47
30
37
9
64
94
73
57
78
36
54
1
50
76
54
43
62
48
27
24
88
5
94
43
50
65
96
7
3
60
26
50
88
64
58
53
Enter a number between 0 & 99:
Last edited by ~s.o.s~; Feb 2nd, 2007 at 12:56 pm. Reason: Added code tags, learn to use them.
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
samernic is offline Offline
6 posts
since Feb 2007
Feb 1st, 2007
0

Re: Help in program

Create an Array of 50 integers. Write a simple function to seach the inputted integer in the array. If the integer is found in the array return the index of that integer in that array. If integer is not found in the array just return -1 from that function.

Now you have got the index of the number. Write another function to swap the elements in the same array from 0 to the index you have found. Supply the array and the index to that function to swap the elemets.

If the element is not found in the array just supply the array and 49 to that function. It will swap all the elements in the array except the first element. And assing the inputted element to

Array[0] = element;
Reputation Points: 9
Solved Threads: 1
Junior Poster in Training
msaqib is offline Offline
91 posts
since Sep 2004
Feb 1st, 2007
0

Re: Help in program

You aren't storing the random numbers in a container, which is basically the idea behind this project. How else is the program supposed to know afterwards which numbers were generated?

As for moving the integers around - make a copy of the integer you plan to move once you've found it, and then simply copy all the nodes over one, and then you'll have an empty space at the end at which to insert your original node.

Consider something like this for moving a node to the top(pseudocode):
C++ Syntax (Toggle Plain Text)
  1. find integer (array)
  2. copy integer to temp variable
  3. for i = (position of node) to 1
  4. copy i node to i-1 node
  5. end for
Hope that made sense.

edit: too slow
Last edited by John A; Feb 1st, 2007 at 11:46 pm.
Team Colleague
Reputation Points: 2240
Solved Threads: 338
Vampirical Lurker
John A is offline Offline
5,055 posts
since Apr 2006
Feb 2nd, 2007
0

Re: Help in program

You aren't storing the random numbers in a container, which is basically the idea behind this project. How else is the program supposed to know afterwards which numbers were generated?

As for moving the integers around - make a copy of the integer you plan to move once you've found it, and then simply copy all the nodes over one, and then you'll have an empty space at the end at which to insert your original node.

Consider something like this for moving a node to the top(pseudocode):
C++ Syntax (Toggle Plain Text)
  1. find integer (array)
  2. copy integer to temp variable
  3. for i = (position of node) to 1
  4. copy i node to i-1 node
  5. end for
Hope that made sense.

edit: too slow
How do you store 50 generated numbers in an array?
Reputation Points: 10
Solved Threads: 0
Newbie Poster
samernic is offline Offline
6 posts
since Feb 2007
Feb 2nd, 2007
0

Re: Help in program

Click to Expand / Collapse  Quote originally posted by samernic ...
How do you store 50 generated numbers in an array?
I'm in a good mood today, so here's some free code for you:
  1.  
  2. int array[50];
  3. for (int iCount = 0; iCount < 50; iCount++)
  4. {
  5. array[iCount] = rand()%99;
  6. }

regards Niek
Moderator
Featured Poster
Reputation Points: 4142
Solved Threads: 394
Industrious Poster
Nick Evan is offline Offline
4,132 posts
since Oct 2006

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C++ Forum Timeline: Sms
Next Thread in C++ Forum Timeline: Any help with pointers





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC