[C con Clase] Pilas

Steven Davidson srd4121 en njit.edu
Lun Abr 27 21:39:29 CEST 2009


Hola José,

Jose Villafañe wrote:
> 
>     tomare en cuenta lo de las variables locales, gracias!
> 
> 
> por ahora dejo el codigo completo que hice....(es en devC++ por
> cierto)

Veamos la parte que interesa.

> int main()
> {
>     char opc;
>     do
>     {
>         system("cls");
>         cout << "\t \t \t \tProyecto 2: " << endl;
>         cout << "\n";
>        
>         cout << "1.- Arreglo" << endl;
>         cout << "\n";
>    
>         cout << "2.- Pilas" << endl;
>         cout << "\n";    
>    
>         cout << "3.- Colas" << endl;
>         cout << "\n";
>         
>         cout << "4.- Salir" << endl;
>         opc=getch( );
>         switch(opc)
>         {
>             case '1':
>                 Arreglo( );
>                 break;
>             case '2':
>                  Pila( );

Aquí, tienes el problema. No incluyes 'break' para salirte de la 
estructura 'switch/case'. Por lo tanto, al realizar el menú de la pila, 
la ejecución continúa invocando 'Cola()'.

Con la opción '3', no tenemos mayores problemas, porque es el último 
caso listado y por tanto seguiremos ejecutando fuera de 'switch/case'.

>             case '3':
>                  Cola( );
>         }
>     }while (opc!='4');

'main()' debe retornar un entero. Por convenio, se elige 0 (cero) para 
indicar que el programa ha terminado correctamente.

> }

También veo que usas 'gets()'. Esta función es peligrosa, ya que no 
puedes indicar la cantidad de caracteres que tiene la cadena. Como estás 
usando C++, sugiero usar 'getline()'. Esto es,

cin.getline( AUX->nombre, 20 );


Espero haber aclarado la inquietud.

Steven





Más información sobre la lista de distribución Cconclase