I'm trying to generate random numbers between -10 and +10. Any help...below is what I've tried:

Code:`srand(time(NULL));`

for (int i=0;i<10;i++)

cout << ((rand() % -10) + -10 + 10) << endl;

Printable View

- 02-18-2009blackCatrand() help?
I'm trying to generate random numbers between -10 and +10. Any help...below is what I've tried:

Code:`srand(time(NULL));`

for (int i=0;i<10;i++)

cout << ((rand() % -10) + -10 + 10) << endl;

- 02-18-2009Meldreth
it's easier to start with a positive range and then move it into the negatives. get a random number from 0 to 20 and then subtract 10.

Code:`rand() % 20 - 10`

- 02-18-2009vart
actually x%20 has values from 0 to 19 and rand()%20 -10 will give [-10;9] range

- 02-18-2009blackCat
Thanks!

- 02-18-2009Meldreth
that's right. there are 4 ways "between x and y" could be interpreted.

[x,y] - all inclusive

[x,y) - right exclusive

(x,y] - left exclusive

(x,y) - all exclusive

usually [x,y) is what's wanted, and that's what my suggestion does. but if you want one of the others, it's easy to change to suit any of the interpretations with simple math.