Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我的程序在扫描完成之前启动循环_C_Loops_Asynchronous - Fatal编程技术网

C 我的程序在扫描完成之前启动循环

C 我的程序在扫描完成之前启动循环,c,loops,asynchronous,C,Loops,Asynchronous,我有一个小问题,我的程序运行良好,直到它到达最后一步,一个要求继续循环的扫描。问题是此扫描不起作用,但以下systemcls起作用。异步时看起来像javascript 这是代码 #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { char elegir_dificultad; int dificil = 1; printf("Desea que se le in

我有一个小问题,我的程序运行良好,直到它到达最后一步,一个要求继续循环的扫描。问题是此扫描不起作用,但以下systemcls起作用。异步时看起来像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;
}

此问题是因为\n上一次扫描留下的字符。在scanf中的每个%c说明符前放置一个空格以耗尽\n


非常感谢!,这是我的第一个C语言程序,我用java和javascript编程,所以我就像omfg一样…是的,它可以工作。我觉得那个问题很愚蠢。另外,random类似乎不起作用,总是生成41和85。您需要为rand函数设定种子。将srandtimeNULL放在第一个printf之前。并且不要忘记在打印前包含time.h header.f%d,aleatorio?好的,这很有效!谢谢你,对不起,我没有足够的声誉投票给你。
scanf(" %c", &introducido);   
...
scanf(" %c",&continuar);