rand() generates a fresh value each time it is called. In your case, the first value in that sequence is apparently 41.
However, the values are derived by doing some calculation on a previously stored value. To get a different sequence of values, you need to change the starting condition by supplying a seed value. Usually the current time is used as it will tend to differ each time the program is run.
Something like
srand (time(NULL));
Note, you should call srand() just once at the start of main().