Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problema con SWITCH

Iniciado por MUSUL, 02 de Noviembre de 2008, 05:49:34 PM

« anterior - próximo »

MUSUL

hola,

vereis, tengo el siguietne switch:

    printf("Selecciona el numero de vehiculo: ");
    scanf("%d",&vehiculo);
   
     switch (vehiculo)
     {
            case '1':
                 total==1;
                 break;
            case '2':
                 total==1.5;
                 break;
            case '3':
                 printf("\nIntroduce los Kilometros del coche: ");
                 scanf("%d",&km);
                 total=km*30;
                 break;
            case '4':
                 printf("\nIntroduce los Kilometros del camion: ");
                 scanf("%d",km);
                 printf("\nIntroduce su tonelaje: ");
                 scanf("%d",tonelaje);
                 total=km*30+tonelaje*25;
                 break;
            default:
                 printf("\nERROR: Ese numero de vehiculo no existe\n\n");
                 break;   
                 
      }   


Hay algo mal? Porque intruduzca lo que introduzca, salta siempre al default :S.
Gracias.

senior wapo

Quítale las comillas a los números 1,2,3,4 en los case. Cuando les pones las comillas estás usando el código que representa al caracter 1 en lugar de usar el número 1. Concretamente, '1' equivale al número 49.

Si pruebas el programa tal como lo tienes y escribes por teclado 49 te ejecutará el case '1'.

Lo dicho, quita las comillas en los case.

MUSUL

Pues sí, en efecto era eso. Gracias :)

Ruben

Hi,
he supuesto que intentas asignar un valor a la variable total en todos los casos, excepto el de por defecto. Repasa en los casos uno y dos la forma en que intentas asignar el valor 1 y 1.5 al total.

            case '1':
                 total==1;/* ==  */
                 break;
            case '2':
                 total==1.5;/* == */
                 break;

Un saludo,
Ruben

Mars Attacks

Tampoco hubiera venido nada mal usar un enumerado para los tipos de vehículos; te ayudaría en la legibilidad del código.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.