In order to make you not have to press <enter> after entering a char, you would have to look outside the ANSI C library, and into the POSIX C library, I believe. Or just use getch()/getche(). getche() works on the gcc supplied with Dev-C++, getch() on other compilers I believe. Not certain, it's been a while since I did interactive console programming 
I'm sorry, I really should have explained in greater depth what I was trying to do. I usually program without comments for programs < 250 lines.
Here's a nice breakdown of how it all fits together . . .
Code:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
The includes. stdio.h for printf(), stdlib.h for srand() and rand(), time.h for time(), and string.h for tolower().
Code:
int main(int argc, char *argv[]) {
int i, num, tries;
char cont;
Main function declaration and variable declarations.
Seed the random number generator with the current UNIX time in seconds.
I'm assuming you've run into do...while loops before. If not, well . . . a do...while loop is much like a while() loop, but instead, do...while loops check the condition at the bottom of the loop rather than the top. This means that they will always run at least once.
Code:
num = (rand()%100)+1;
Set the random number to guess for this game. Since rand()%100 returns a number in the range 0-99, you want to add 1 to it to get 1-100.
Initialize the variables for the game. i is the entered number, which is set to -1 to indicate that no number has been entered yet. tries is the amount of tries that the player has gone through in order to guess the number, zero at the first round.
Loop until the entered number (i) is the same as the randomly-generated number (num).
If this is not the first round . . .
Code:
if(i > num) {
printf("Too high!\n");
}
else printf("Too low!\n");
Compare i to num. Since i will never be equal to num because of the while() loop condition, simply print "Too high!" if the number entered was > the randomly-generated number, else print "Too low!".
Code:
}
printf("Enter a number between 1 and 100: ");
scanf("%i", &i);
Finish off the if(i !=-1) if block first. Then, print a prompt for the player and retrieve the entered number into the variable i.
Increment the number of tries.
Finish off the while(i != num) loop. If it gets past this point, then the number entered was the same as the random number, so . . .
Code:
printf("Got it in %i %s. Again? [yY/nN] ", tries, tries == 1?"try":"tries");
This is a little bit of fancy footwork. The %i should be easy enough. The %s, on the other hand . . . Suffice to say that if the condition (tries == 1) is true, then it will print "try", otherwise it'll print "tries". (1 tries doesn't sound too good
).
Code:
while((cont = tolower(getchar())) && cont != 'y' && cont != 'n') ;
Again, some fancy footwork. This loop will continue going around until the keyboard buffer is cleared, and until the player enters 'y' or 'n', in either case. The function tolower() converts an uppercase char into a lowercase char, or leaves it alone if it's either a non-alpha char or already lowercase. 
Code:
} while(cont == 'y');
aaand continue the do...while loop until the user enters 'n', to indicate that they don't want to try playing again.
Finish up and return 0.
Hope this helps a tad.