Ver Mensaje Individual
  #6 (permalink)  
Antiguo 27/05/2011, 09:24
iovan
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 3 meses
Puntos: 188
Respuesta: Por qué no me lee con scanf un char al final de un ciclo?

Hola amigo, verás hay varios detallitos en tu código. Si lees con atención este lo vas a poder solucionar facilmente.

Para crear una opcion del tipo "preciona S" para volver a jugar o "presiona N" para cerrar. Te recomiendo que hagas uso del ciclo do while.

Código C:
Ver original
  1. int main(){
  2. char opcion;
  3.  
  4.  
  5. do{
  6.  
  7. //Todo el código aquí
  8.  
  9. .
  10. .
  11. .
  12. .
  13. .
  14.  
  15.  
  16.  
  17. //Pregunto al usuario si quiere volver a jugar o si desea cerrar el programa
  18.  
  19. printf("Preciona 'S' para volver a jugar o 'N' para cerrar el programa");
  20. opcion = getch();
  21.  
  22. }while(opcion == 'S');
  23.  
  24.  
  25.  
  26. }

Posteriormente, en esta parte está el primer error:
Código C:
Ver original
  1. while(prueba != numero){
  2.              if(prueba > numero){
  3.                    printf("\nMuy arriba. Intenta de nuevo.\n");
  4.                    scanf("%d", &prueba);
  5.                    }
  6.               if(prueba < numero){
  7.                    printf("\nMuy abajo. Intenta de nuevo.\n");
  8.                    scanf("%d", &prueba);
  9.                    }
  10.               }//Fin del while

La sentencia if debe ser del tipo:

Código C:
Ver original
  1. if(prueba > numero){
  2.                        .
  3.                        .
  4.                        .
  5.                        .
  6. }
  7. else  if(prueba < numero){
  8.                        .
  9.                        .
  10.                        .
  11.                        .
  12. }
  13. else {
  14.  
  15. printf("Felicidades! Adivinaste el numero!\n");
  16.  
  17. }

Y es todo, la parte en donde preguntas "Quieres jugar otra vez ya está incluida en el ciclo do while.

Saludos.


_____________________
P.D: El programa se te cerraba porque hacia falta un getch() o _getch() o system("pause"); al final del programa.
con el ciclo do while no lo vas a necesitar.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.