Buenas necesito ayuda con este programaa porfavor agradeceria si me ayudan
1. Desarrollar un programa que permita crear una pila que contenga el registro de cierta cantidad de CD musicales con los siguientes datos: código, nombre y número de discos vendidos. Los datos código y numero de discos vendidos deben ser valores enteros. El ingreso de datos finalizara cuando el valor del código sea igual a cero. Este registro cuyo valor de código es cero, no debe ser parte de la pila.
2. Muestre los detalles de los CD con más de 1000 discos vendidos.
3. Muestre los detalles de los CD con menos copias vendidos.
4. Elimine todos los CD con menos copias vendidas, dejando los demás elementos de la pila en el mismo orden en que estaban antes de la eliminación.
5. El programa debe mostrar por pantalla los elementos o valores que se encuentran en la pila antes y después de la eliminación. Para esto harán uso de una función llamada visualPila() la cual será desarrollada por los estudiantes en la librería.
y aqui esta lo q he programado pero me da error agradeceria cualquier tipo de ayuda
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
typedef struct pila{
int tope;
int pila[50000];
}tipo_pila;
void nuevaPila(tipo_pila *ptr_pila){
ptr_pila->tope=0;
}
void push(tipo_pila *ptr_pila,int tipoElemento){
if(ptr_pila == NULL)
return;
else{
ptr_pila -> pila[ptr_pila -> tope++]=tipoElemento;
return;
}
}
int sacar(tipo_pila *ptr_pila){
return ptr_pila->pila[--ptr_pila->tope];
}
int obtener(tipo_pila *ptr_pila){
return ptr_pila->pila[ptr_pila->tope-1];
}
int vacia(tipo_pila *ptr_pila){
if (ptr_pila->tope==0)
return 1;
else
return 0;
}
int llena(tipo_pila *ptr_pila){
if (ptr_pila-> tope==50000)
return 1;
else
return 0;
}
int main()
{
tipoelemento, *tipo_pila, *aux, menor = 50000;
int cantidad, codigo, cd;
ptr_pila =(tipo_pila*)malloc(sizeof (tipo_pila));
nuevaPila(ptr_pila);
printf("introduzca el codigo:");
scanf("%d", &cd.codigo);
if(cd.codigo==0)
return 1;
else
{
while (cd.codigo != 0)
{
printf("introduzcael nombre:");
scanf("%s", &cd.nombre);
printf(" introduzca la cantidad");
scanf("%d", &cantidad);
push(ptr_pila,cd);
printf("introduzca el codigo:");
scanf("%d",& codigo);
}
printf("pila original:\n");
visualpila(ptr_pila);
printf("los discos con mas de 1000 copias vendidas:\n");
while (!vacia(ptr_pila))
{
cd = pop(ptr_pila);
if(cd.cantidad>1000)
printf("%d %s %d \n", cd.codigo, cd.nombre,cd.cantidad);
if(cd.cantidad < menor)
menor = cd.cantidad;
push(aux,cd);
}
printf("discos con menores copias \n");
while (!vacia(aux))
{
cd=pop(aux);
if(cd.cantidad==menor)
printf("%d %s %d \n", cd.codigo, cd.nombre, cd.cantidad);
else
push(ptr_pila.cd);
}
}