C 我的程序在扫描完成之前启动循环
我有一个小问题,我的程序运行良好,直到它到达最后一步,一个要求继续循环的扫描。问题是此扫描不起作用,但以下systemcls起作用。异步时看起来像javascript 这是代码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
#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);