Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/05/2009, 11:14
Avatar de neandertal
neandertal
 
Fecha de Ingreso: enero-2008
Ubicación: Barcelona
Mensajes: 79
Antigüedad: 17 años
Puntos: 1
Pregunta Declarar variables en switch()

Estoy haciendo un programa el objetivo del cual es hacer una ordenacion ya sea de valores numericos enteros,decimales,caracteres o palabras con diferentes algoritmos y comparar cual es el más efectivo en ese caso.

El problema me ha surgido cuando pregunto al usuario que tipo de valor desea ordenar, en ese momento tengo que crear un array en función del tipo de valor que haya seleccionado el usuario, he hecho un switch que declare la variable en funcion de una variable, mejor pongo el código:

Código:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

//Declaracion de prototipo
void entra_valor(char mensaje[],int* valor);
void pinta_encabezado();

int main(int argc, char *argv[]){
    char mensajes[3][100]={
         {"Introduzca el numero de elementos: "},
         {"Tipo de valores a ordenar:\n (1)Num Entero (2)Num Decimal (3)Caracter (4)Cadenas: "},
         {"En orden:\n (1)Mayor a menor (2)Menor a mayor : "},
    };
    int parametros[3]; //Numero elementos,Tipo de valores y Orden respectivamente
    int i,j;
    pinta_encabezado();
    for(i=0;i<3;i++){
                     entra_valor(mensajes[i],&parametros[i]);
    }
    
    switch(parametros[2]){
                          case 1:int valores[parametros[1]];break;
                          case 2:float valores[parametros[1]];break;
                          case 3:char valores[parametros[1]];break;
                          case 4:char valores[parametros[1]][];break;
    }
    
    system("PAUSE");	
    return 0;
}

//Valor que es llamada para recoger los parametros necesarios para la ordenacion
void entra_valor(char mensaje[],int* valor){
    printf("%s",mensaje);
    scanf("%d",&(*valor));
}

//Función que muestra el encabezado del programa
void pinta_encabezado(){
     printf("+----------------------------------------------------------------------------+\n");
     printf("|                     Programa comparativo de rendimiento                    |\n");
     printf("|                    de diferentes algoritmos de ordenacion.                 |\n");
     printf("+----------------------------------------------------------------------------+\n");
}
C no permite hacer este tipo de cosas, o hay algún error en mi código ?
Por favor ayudenme.