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.