I put srand( ) at the very top (below main) and now I get heads and tails, but every time I run the program I get 52 tails and 48 heads. I've tried the numbers 1 - 3 inside the srand( ).

srand() is designed so that you get "random" numbers (no number created by a computer will ever be 100% random....), but still give you the same random numbers every time you run the program (so you can duplicate results, if needed). If you ran it more than 100 times, it would trend more towards half and half. I set srand( time(NULL)); (which just uses the system time as the random value) and when I ran it, I got several that ere 48-52, 53-47, as well as several that were 50-50.