PDA

View Full Version : C++ Random Number




ghall
Nov 1, 2007, 03:12 PM
I'm writing a program that requires a random action, and I've found a way to do it, which is assign a random number from 0 to 9 to 'x', and then create some 'if' and 'if else' commands using the value of 'x' as a guard.

I looked up 'rand', and I really don't understand how to use it.



ukneeq
Nov 1, 2007, 03:55 PM
I'm writing a program that requires a random action, and I've found a way to do it, which is assign a random number from 0 to 9 to 'x', and then create some 'if' and 'if else' commands using the value of 'x' as a guard.

I looked up 'rand', and I really don't understand how to use it.

Here is a link to a good reference:
http://www.cplusplus.com/reference/clibrary/cstdlib/rand.html

but basically you just set the variable to rand() % 10. The number you use the modulo with is the values you want to get a random number from. So in your case you would just have

x = rand() % 10;

ghall
Nov 1, 2007, 04:26 PM
Here is a link to a good reference:
http://www.cplusplus.com/reference/clibrary/cstdlib/rand.html

but basically you just set the variable to rand() % 10. The number you use the modulo with is the values you want to get a random number from. So in your case you would just have

x = rand() % 10;

Yay, thanks!

ghall
Nov 1, 2007, 04:44 PM
Okay new problem. It keeps returning the same number.

Here's my code:

#include <stdio.h>
#include <stdlib.h>
int main()


{
int libchoose = rand() % 10;


if (libchoose==0){
char verbpt[50];
char adj[50];
char verb[50];
char noun[50];
char verb2[50];

printf ("Verb, Present Tense: ");
scanf ("%s", verbpt);
printf ("Adjective: ");
scanf ("%s", adj);
printf ("Verb: ");
scanf ("%s", verb);
printf ("Noun: ");
scanf ("%s", noun);
printf ("Verb: ");
scanf ("%s", verb2);

//"Flying is easy. You just have to throw yourself at the ground and miss"-Douglas Adams
printf ("%s is %s. You just %s yourself at the %s and %s.", verbpt, adj, verb, noun, verb2);
}

else if (libchoose==1){

//"I must say[verb] I find television[noun] very educational[adj]. The minute somebody turns it on, I go to the library[noun2] and read a good[adj2] book[noun3]."-Groucho Marx
char noun[50];
char adj[50];
char noun2[50];
char adj2[50];
char noun3[50];


printf ("Noun: ");
scanf ("%s", noun);
printf ("Adjective: ");
scanf ("%s", adj);
printf ("Noun: ");
scanf ("%s", noun2);
printf ("Adjective: ");
scanf ("%s", adj2);
printf ("Noun: ");
scanf ("%s", noun3);

printf ("I must say I find %s very %s. The minute somebody turns it on, I go to the %s and read a %s %s", noun, adj, noun2, adj2, noun3);


}
else{
printf ("Puzzle %d is not a valid puzzle.\n", libchoose);
}

}

Eraserhead
Nov 1, 2007, 05:18 PM
random() is a better algorithm than rand() its more random, you seed it with srandomdev()

ghall
Nov 1, 2007, 05:30 PM
random() is a better algorithm than rand() its more random, you seed it with srandomdev()

What does seeding mean?

Eraserhead
Nov 1, 2007, 06:01 PM
What does seeding mean?

It seeds the random number with the date, so you don't get the same sequence of random numbers each time ;).