estas comparando el caracter 3 con el numero 3<br>osea ' 3 '  =? 3  la respuesta es nooo!!!<br><br>ponele " ' ' " a los numeros en los cases...<br><br><br>David<br><br><br><div class="gmail_quote">

El 11 de noviembre de 2009 15:17, Cesar Cortes Baron <span dir="ltr"><<a href="mailto:cesco17@hotmail.com">cesco17@hotmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">





<div>
Hola Tengo este codigo con el siguiente problema, en el menu de opciones de 1 a 5, pongo en el switch por defecto un mensaje, todo funciona bien siempre  y cuando la opcion digitada sea un numero, si es otro caracter el programa se bloquea. ahora cambie la variable opcion del switch por  una variable de tipo char pero igual el programa no funciona bien, por favor ayuda. <br>

<br><br>este es el codigo: <br><br>#include <stdlib.h><br>#include <conio.h><br>#include <iostream.h><br>void ingresaAuto(int disp);<br>int saleAuto();<br>void cuadro(void);<br>void contadores(int autos); /* Función de la opción 4, imprime cuántas personas entraron y cuántos coches salieron */<br>

int calcDisp(); /* Función que debuelve el numero de indice para la variable placas[11] */<br>void menu();<br><br>char *placas[11] = {"xxxxxx", "xxxxxx", "xxxxxx", "xxxxxx", "xxxxxx", "xxxxxx", "xxxxxx", "xxxxxx", "xxxxxx", "xxxxxx", }; /* Cambiado el arreglo placas por un array de cadenas */<br>

<br>int main()<br>{<br>    int cupo=10, contSal=0, i, disp; /* contBol y contSal son los contadores para la opción 4 */<br>    char opcion=0;<br><br>    while (opcion!='5') {<br>    menu();<br>    cout<<"\nIngrese el numero de la opcion: ";<br>

     cin>>opcion;<br><br>    switch (opcion)<br>           {<br>         case 1:<br>        if (cupo > 0) {<br>            ingresaAuto(calcDisp());<br>            cupo--; /* se resta 1 al cupo total, siempre y cuando cupo sea mayor que 0 */<br>

        } else {<br>            printf("No hay suficiente cupo.\n");<br>            getch();<br>        }<br>        break;<br><br>        case 2:  if (cupo<10)<br>        {<br>        if (saleAuto()==0) { /* igual que con regBoleto pero esta vez también suma 1 a cupo */<br>

            cupo++;<br>            contSal++;<br>              cout<<"Ha salido un auto del parqueadero. \n";<br>              getch();<br>        }<br>        }<br>          else<br>        cout<<"No han ingresado autos al parqueadero. "<<endl;<br>

        getch();<br><br>        break;<br>        case 3:<br>        contadores(contSal);<br>        break;<br>         case 4:<br>        for (i=0; i < 10; i++)<br>            cout<<"\n Lugar "<< i+1<<" "<< placas[i]<<endl;<br>

           cout<<"\n\n  Lugar mas cercano disponible: "<< calcDisp()+1; /* calcDisp calcula el siguiente lugar donde se guardara el carro, siendo éste el mas bajo disponible */<br>        getch();<br>

        break;<br>        case 5:<br>        break;<br><br>        default:<br>        cout<<"Opcion incorrecta.\n";<br>        getch();<br>        break;<br>         }<br>    }<br><br><br>}<br>/* Funciones */<br>

<br>void ingresaAuto(int disp)<br>{<br>    char placasTmp[6];<br>    cout<<"\nIngrese los digitos de la placa del auto: ";<br>    cin>>placasTmp;<br>    placas[disp] = (char *) malloc(sizeof placasTmp); /*asigna un bloque de memoria de bytes consecutivos en memoria para almacenar objetos devuelve un puntero generico*/<br>

    strcpy(placas[disp], placasTmp); /* copia la cadena2 en la cadena1 y devuelve un puntero a cadena1*/<br>}<br><br>int saleAuto()<br>{<br>    char placas2[20];<br>    int i;<br><br>    cout<<"\nIngrese las placas del auto: ";<br>

    cin>>placas2;<br><br>    for (i=0; i<10; i++) {<br>    if (strcmp(placas2, placas[i]) == 0) {<br>        strcpy(placas[i], "xxxxxx|");<br>        return 0;<br>    }<br>    }<br>    cout<<"El numero es incorrecto o no fue registrado";<br>

    getch();<br>    return 1;<br>}<br><br><br><br>void contadores(int autos)<br>{<br><br>    if (autos <= 0) {<br>    cout<<"No han salido autos.";<br>    getch();<br>    } else {<br>    cout<<"Han salido "<<autos<<" autos del parqueadero."<<endl;<br>

    getch();<br>    }<br>}<br><br>int calcDisp()<br>{<br>    int i;<br>    for (i=0; i<10; i++) {<br>    if (strcmp(placas[i], "xxxxxx") == 0)<br>        return i;<br>    }<br>    return -1;<br>}<br><br>void menu()<br>

{<br>    clrscr();<br>    cout<<" |========================================================================| \n";<br>    cout<<" |                     ******    BIENVENIDO    ******                     | \n";<br>

    cout<<" |========================================================================| \n";<br>    cout<<" |                                                                        | \n";<br>

    cout<<" |                                                                        | \n";<br>    cout<<" |                1) Registrar los autos en el parqueadero                | \n";<br>

    cout<<" |                2) Sacar autos del parqueadero                          | \n";<br>    cout<<" |                3) autos que salieron                                   | \n";<br>

    cout<<" |                4) Ver placas ingresadas y espacios diponibles          | \n";<br>    cout<<" |                5) Salir                                                | \n";<br>

    cout<<" |                                                                        | \n";<br>    cout<<" |                                                                        | \n";<br>

<br>    cout<<" |========================================================================| \n";<br>}<br><br>                                      <br><hr>Get news, entertainment and everything you care about at Live.com. <a href="http://www.live.com/getstarted.aspx" target="_blank">Check it out!</a></div>


<br>_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br></blockquote></div><br><br clear="all"><br>-- <br> (\__/) <br>(='.'=)This is Bunny. Copy and paste bunny into your <br>

(")_(")signature to help him gain world domination. <br><br>