Código C++:
Ver original#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
int numero;
int prueba;
char sn;
while(1 == 1){
numero
= (rand() % 1000) + 1; printf("Tengo un numero entre 1 y 1000\n" "Puedes adivinar cual es?\n"
"Por favor escribe tu primera respuesta\n");
while(prueba != numero){
if(prueba > numero){
printf("\nMuy arriba. Intenta de nuevo.\n"); }
if(prueba < numero){
printf("\nMuy abajo. Intenta de nuevo.\n"); }
}
if(prueba == numero){
printf("Felicidades! Adivinaste el numero!\n"); }
printf("Quieres jugar otra vez? (S/N)\n"); if(sn == 'S' || sn == 's')
continue;
else
break;
}
}
Ahora que me sente en mi pieza y compile tu codigo pude ver bien los error. El primero de todo es el que te mencione..
Tienes que agregar while (sn != '\n') sn = getchar(); para vaciar el biffer de entrada porque al ingresar un numero y leer con scanf y presionas enter al mandarlo, ese enter queda en el baffer. Al leer un caracter este era el que se almacenaba en sn y entoces pasaba que se salteaba el scanf.
Segundo en el if para comparar con S o s fijate que estabas usando comillas dobles y eso es para cadenas de catacteres o array de caracteres. Para comparara un solo caracter con una variable tipo char (como es en tu caso) tienes que usar comillas simples.
Adios