Hola, tengo un problema con el siguiente código:
Código:
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]);
}
}
Donde parametros[1] es un valor numérico que solo puede tener valores enteros del 1 al 4.
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...