Código:
Donde parametros[1] es un valor numérico que solo puede tener valores enteros del 1 al 4.int valoresd[parametros[0]]; float valoresf[parametros[0]]; char valoresc[parametros[0]]; char valoress[parametros[0]][100]; if(parametros[1]==1){ printf("Introduzca los valores enteros\n"); for(i=0; i<parametros[0]; i++){ printf("Valor %d: ",i+1); scanf("%d",&valoresd[i]); } } if(parametros[1]==2){ printf("Introduzca los valores decimales\n"); for(i=0; i<parametros[0]; i++){ printf("Valor %d: ",i+1); scanf("%f",&valoresf[i]); } } if(parametros[1]==3){ printf("Introduzca los caracteres\n"); for(i=0; i<parametros[0]; i++){ printf("Valor %d: ",i+1); scanf("%c",&valoresc[i]); } } if(parametros[1]==4){ printf("Introduzca las cadenas de caracteres\n"); for(i=0; i<parametros[0]; i++){ printf("Valor %d: ",i+1); scanf("%s",&valoress[i]); } }
Cuando parametros[1] es 1,2 o 4 funciona perfecto y sin ningún problema, pero cuando parametros[1] es 3, entonces es como si no me cogiera bien el scanf,
La salida normal del programa en 1,2 i 4 es:
Valor 1: <espera a que introduzca valor>
Valor 2: <espera a que introduzca valor>
Valor 3: <espera a que introduzca valor>
Valor parametros[0]: <espera a que introduzca valor>
Pero en parametros[1]==3 me da la siguiente salida:
Valor 1:Valor 2: <espera a que introduzca valor>
Valor 3:Valor 4: <espera a que introduzca valor>
Valor parametros[0]-1:Valor parametros[0]: <espera a que introduzca valor>
He comprobado los valores de parametros[0] y parametros[1] cuando entra en el if, pero no encuentro el problema por ninguna parte, y las estructuras de los 4 condicionales son exactamente iguales.
Estoy muy frustrado con este problema...
