Cita:
Iniciado por athena_rivas HOLA TENGO ESTE CODIGO, NO GENERA ERRORES, PERO LO EJECUTO Y EN LA FUNCION PUSH NO RESPETA LA CONDICION DE :
if(tope<9) {
tope++;
pila[tope]=valor; }
else
cout<<"\nLa pila esta llena!\n";
ME DEJA LLENAR O INTRODUCIR MAS DE 9 VALORES Y PS NO ME DICE LA PILA ESTA LLENA NO SE EN DONDE ESTA EL ERROR, ESPERO ALGUIEN ME PUEDA AYUDAR GRACIAS...... AKI LES DEJO EL CODIGO COMPLETO!!
Código:
#include<conio.h>
#include<iostream.h>
#include<stdio.h>
int tope=-1,valor;
int pila[10];
void push(int val);
void pop();
void main()
{
clrscr();
int opcion;
do
{
clrscr();
cout<<"\n\n\tMENU\n\n";
cout<<"Seleccione una opcion:\n";
cout<<"1.-Agregar algun elemento\n";
cout<<"2.-Eliminar algun elemento\n";
cout<<"3.-Salir del programa\n";
cout<<"Que opcion deseas??\n";
cin>>opcion;
clrscr();
switch(opcion)
{
case 1:
{
cout<<"\nIntroduce un valor:";
cin>>valor;
push(valor);
break;
}
case 2:
{
pop();
break;
}
case 3:
{
cout<<"\nSalir del Programa,Gracias!\n";
break;}
}
}while(opcion!=3);
getch();
}
void push(val)
{
if(tope<9)
{
tope++;
pila[tope]=valor;
}
else
cout<<"\nLa pila esta llena!\n";
}
void pop()
{
if(tope>=0)
{
pila[tope]=0;
tope--;
cout<<"\nHas eliminado una pila!\n";
clrscr();
}
else
cout<<"La pila esta vacia!";
}
Despues de revisar tu codigo, parece que esta correcto. Lo unico que me parece que puede cusarte el error es el
tope=-1;
Mejor ponlo en 0 y arregla tus funciones push y poco para que trabajen asi:
Cita: void push(val)
{
if(tope<9)
{
pila[tope]=valor;
tope++;
}
else
cout<<"\nLa pila esta llena!\n";
}
void pop()
{
if(tope>=0)
{
tope--;
pila[tope]=0;
cout<<"\nHas eliminado un dato de la pila!\n";
clrscr();
}
}
Por cierto, en los case, no necesitas la llaves, puedes ponerlo asi:
Cita: switch(opcion)
{
case 1:
cout<<"\nIntroduce un valor:";
cin>>valor;
push(valor);
break;
case 2:
pop();
break;
case 3:
cout<<"\nSalir del Programa,Gracias!\n";
break;
}