Ver Mensaje Individual
  #3 (permalink)  
Antiguo 27/05/2011, 06:52
reethok
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Respuesta: Por qué no me lee con scanf un char al final de un ciclo?

Cita:
Iniciado por Isra_84 Ver Mensaje
Cambia

while(1==1) (que por cierto si quieres un bucle infinito con while(1) basta)

y pon :

while (sn!='s'){
}

de esta manera te ahorras el if de abajo del todo; simplemente pon el mensaje al final de todas las comprobaciones.
Ok... quedó así:

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <stdlib.h>
  4.  
  5. int main()
  6. {
  7.     int numero;
  8.     int prueba;
  9.     char sn[2] = "S";
  10.    
  11.     while(sn != "n" && sn != "N"){
  12.          srand(time(NULL));
  13.          numero = (rand() % 1000) + 1;
  14.          printf("Tengo un numero entre 1 y 1000\n"
  15.                 "Puedes adivinar cual es?\n"
  16.                 "Por favor escribe tu primera respuesta\n");
  17.          scanf("%d", &prueba);
  18.          
  19.          while(prueba != numero){
  20.               if(prueba > numero){
  21.                    printf("\nMuy arriba. Intenta de nuevo.\n");
  22.                    scanf("%d", &prueba);
  23.                    }
  24.               if(prueba < numero){
  25.                    printf("\nMuy abajo. Intenta de nuevo.\n");
  26.                    scanf("%d", &prueba);
  27.                    }
  28.               }
  29.  
  30.          if(prueba == numero){
  31.               printf("Felicidades! Adivinaste el numero!\n");
  32.               }
  33.          
  34.          printf("Quieres jugar otra vez? (S/N)\n");
  35.          scanf("%c", &sn);
  36.          printf("\n");
  37.          }
  38. }

Pero cuando adivinas el número y aprietas cualquier tecla se cierra! :S