That's an excellent follow-up question!
If you call rand() without ever calling srand() first, the C standard guarantees that rand() will behave as if it was seeded with srand(1).
This means that every time you run your program without an explicit srand() call, the sequence of "random" numbers generated by rand() will be exactly the same. It will produce the same set of numbers in the same order every single time.
For example, if you run this simple program multiple times without srand():
#include <stdio.h>
#include <stdlib.h>
int main() {
printf("Random number 1: %d\n", rand());
printf("Random number 2: %d\n", rand());
return 0;
}
You would likely see something like this:
Run 1:
Random number 1: 1804289383
Random number 2: 846930886
Run 2:
Random number 1: 1804289383
Random number 2: 846930886
And so on, for every subsequent run.
So, while rand() will still return numbers, they won't be unpredictable or truly random across different program executions. This is why srand(time(NULL)) is so important when you need genuinely varied results, like in your number guessing game!
Does that make sense?