; esto forma parte de un programa mayor ; el porblema esta en que cuando lo ejecuto y le introduzco por teclado un valor tal que resp pasa a ser igual a ... por ejemplo '3f', es decir: resp[0]=3 resp[1]=f entonces me deberia de volver a pedir que escoja un nuevo nivel de dificultad pero no lo hace. Lo que hace es retornarme la parte entera del array y , si no tiene parte entera me devuelve un 0; LO QUE QUIERO QUE HAGA ES QUE SI INTRODUZCO UN CARACTER ME LO DETECTE Y ME DIGA QUE VUELVA A INTRODUCIR LA DIFICULTAD. MUCHAS GRACIAS
Código [Seleccionar]
int main(){
int control=0,n,i,dif;
char resp[4];
printf("Nivel actual %i \n", dificultad);
do{
printf("Elige el nuevo nivel[1..100]: \n");
fflush(stdin);
scanf(" %s", &resp);
n=strlen(resp); //COMPROBACIONES
if(n<1||n>=4){control=1;}
for(i=0;i<n;i++){ //letras
if(resp[i]<'0'&& resp[i]>'9'){
control=2;}}
switch(control){
case 1:
printf("\nHas seleccionado un n\243mero no v\240lido\n\n");break;
case 2:
printf("El numero ha de contener solo digitos\n");break;
case 0:
dif=atoi(resp);
if(dif>=1&&dif<=100){
printf("\nHas establecido numero de intentos máximo como: %i \n\n", dif);control=0;}
else{printf("\nHas establecido un n\243mero no v\240lido\n\n");
control==1;
}
}
}while(control==3 || control==2 || control==1);
return 0;}