Ver Mensaje Individual
  #12 (permalink)  
Antiguo 27/05/2011, 23:47
_Lx
 
Fecha de Ingreso: mayo-2011
Mensajes: 17
Antigüedad: 12 años, 11 meses
Puntos: 11
Información Respuesta: Por qué no me lee con scanf un char al final de un ciclo?


Creo que se ve mejor así:

Código C:
Ver original
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <ctype.h>
  4. #include <time.h>
  5.  
  6. int main()
  7. {
  8.    int numero;
  9.    int prueba;
  10.    char sn;
  11.    
  12.    srand(time(NULL));
  13.    do{
  14.       numero = (rand()&#37;1000) + 1;
  15.       printf("\n\nTengo un numero entre 1 y 1000\n"
  16.              "Puedes adivinar cual es?\n"
  17.              "\nPor favor, escribe tu primera respuesta:\n\n");
  18.       do{
  19.          scanf("%d", &prueba);
  20.          if(prueba > numero){
  21.             printf("\nMuy arriba. Intenta de nuevo.\n\n");
  22.          }
  23.          else if(prueba < numero){
  24.             printf("\nMuy abajo. Intenta de nuevo.\n\n");
  25.          }
  26.       }while(prueba != numero);
  27.       printf("Felicidades! Adivinaste el numero!\n");
  28.       while( getchar()!='\n'); // lee lo que queda en el buffer de entrada hasta el '\n'(lo vacía).
  29.       printf("Quieres jugar otra vez? (S/N): ");
  30.       scanf("%c", &sn);
  31.    }while( toupper(sn) == 'S');
  32.    printf("\n\nNos vemos . . .");
  33.    getchar(); // pausa
  34.    return 0; // devuelve 0 indicando (al SO) que el programa finalizó correctamente.
  35. }


Nos vemos ...