Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Using random numbers

Posted on 1998-10-14
4
Medium Priority
?
195 Views
Last Modified: 2010-05-19
We are learning to use the
srand(time(NULL))
rand()%11
function command things, and our teacher asked us to make a "game" so to speak where the user enters a number, then the computer trys to guess it, you have to use while loops also. I tried this. (number being the users entered number, compguess being the random number the computer picks)
int compguess = rand()%number;
while(compguess != number)
  {
   count = count + 1; //to keep the amount of guesses
   cout<<compguess<<" was wrong"<<endl;  
  }
 cout<<"The computer took "<<count<<" times"<<endl;
well that just gave me a big long scrolling list of one number being wrong, can someone please tell me how I could go about doing this a.s.a.p. sorry its so long.
0
Comment
Question by:truancy
4 Comments
 

Accepted Solution

by:
lodin earned 200 total points
ID: 1175179
You need to set compguess every time you iterate through the loop.
while(compguess != number)
     {
      count = count + 1; //to keep the amount of guesses
      cout<<compguess<<" was wrong"<<endl;  
      compguess = rand()%number;
     }

0
 
LVL 2

Expert Comment

by:gysbert1
ID: 1175180
In a case like this it as always a good idea to STEP through your code and see what the code you wrote really does.

Take a pen and paper and write down the variables after each step (or only the ones that changed). If you did this you would see why you got the same value all the time and it would be easy to spot the problem.

After doing this a number of times on paper it gets easier to step through with the values in your head to check your code.
0
 

Expert Comment

by:mmachie
ID: 1175181
>while(compguess != number)
>     {
>      count = count + 1; //to keep the amount of guesses
>      cout<<compguess<<" was wrong"<<endl;    
>      compguess = rand()%number;
>     }

does this produce an infinite loop?  i mean, won't rand()%number result in a number between 0 and (number - 1) inclusive?
sorry about the daft question, but perhaps i don't understand the % operator.

0
 
LVL 5

Expert Comment

by:icd
ID: 1175182
mmachie.

Quite right, the original question seemed to expect a number in the range 0-10 (inclusive) so this should be:-

compguess = rand() % 11;
0

Featured Post

Important Lessons on Recovering from Petya

In their most recent webinar, Skyport Systems explores ways to isolate and protect critical databases to keep the core of your company safe from harm.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When writing generic code, using template meta-programming techniques, it is sometimes useful to know if a type is convertible to another type. A good example of when this might be is if you are writing diagnostic instrumentation for code to generat…
This article shows you how to optimize memory allocations in C++ using placement new. Applicable especially to usecases dealing with creation of large number of objects. A brief on problem: Lets take example problem for simplicity: - I have a G…
The goal of the video will be to teach the user the concept of local variables and scope. An example of a locally defined variable will be given as well as an explanation of what scope is in C++. The local variable and concept of scope will be relat…
The viewer will be introduced to the member functions push_back and pop_back of the vector class. The video will teach the difference between the two as well as how to use each one along with its functionality.
Suggested Courses

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question