Solved

Using random numbers

Posted on 1998-10-14
4
189 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 100 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

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

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 will show you some of the more useful Standard Template Library (STL) algorithms through the use of working examples.  You will learn about how these algorithms fit into the STL architecture, how they work with STL containers, and why t…
The viewer will learn how to clear a vector as well as how to detect empty vectors in C++.
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.

840 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