1

少し問題がscanfあります。ループの継続を要求する最終ステップに到達するまで、私のプログラムはうまく機能します。問題は、このスキャンが機能しないことですが、次のシステム ("cls") は機能します。非同期の場合は JavaScript のように見えます。

これがコードです。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  char elegir_dificultad;
  int dificil = 1;

  printf("Desea que se le indique si el numero es menor o mayor? \n s/n \n");
  scanf("%c",&elegir_dificultad);
  if(elegir_dificultad == 's'){
      dificil = 0;
  }
  while(1){
      int aleatorio, cont, introducido;
      cont = 1;
      aleatorio = rand()%101;
      printf("%d",aleatorio);
      int fallo = 1;
      while(fallo){
          printf("Introduce el numero, intento numero %d \n", cont);
          scanf("%d",&introducido);
          if(introducido == aleatorio){
                  fallo = 0;
          }
          if(cont == 10){
                  break;
          }
          if(!dificil){
              if(introducido < aleatorio){
                  printf("El numero introducido es menor que el aleatorio \n");
              }
              if(introducido > aleatorio){
                  printf("El numero introducido es mayor que el aleatorio \n");
              }                 
          }
          if(fallo){
          cont++;
          }
      }
      char continuar;
      if(fallo){
         printf("Has perdido... el numero era %d \n Quieres repetirlo? s/n \n",aleatorio);
         scanf("%c",&continuar); 
         if(continuar=='n'){
               break;              
         }     
         system("cls"); 
      }else{
         printf("°Has ganado! el numero era %d \n Quieres repetirlo? s/n \n",aleatorio);  
         scanf("%c",&continuar); 
         if(continuar=='n'){
               break;              
         }     
         system("cls");   
      }
  }

  system("PAUSE");  
  return 0;
}
4

1 に答える 1