Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/06/2011, 14:46
Avatar de CapacProg
CapacProg
 
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 15 años
Puntos: 71
Respuesta: Programa en C++

Es preferible que uses el resaltado de código para mostrar tu implementación.

Código C++:
Ver original
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<stdlib.h>
  4. typedef struct pila {
  5.     int tope;
  6.     int pila[50000];
  7. } tipo_pila;
  8.  
  9. void nuevaPila(tipo_pila *ptr_pila) {
  10.     ptr_pila->tope = 0;
  11. }
  12. void push(tipo_pila *ptr_pila, int tipoElemento) {
  13.     if (ptr_pila == NULL)
  14.  
  15.         return;
  16.     else {
  17.         ptr_pila -> pila[ptr_pila -> tope++] = tipoElemento;
  18.         return;
  19.     }
  20. }
  21. int sacar(tipo_pila *ptr_pila) {
  22.     return ptr_pila->pila[--ptr_pila->tope];
  23. }
  24. int obtener(tipo_pila *ptr_pila) {
  25.     return ptr_pila->pila[ptr_pila->tope - 1];
  26. }
  27.  
  28. int vacia(tipo_pila *ptr_pila) {
  29.     if (ptr_pila->tope == 0)
  30.         return 1;
  31.     else
  32.         return 0;
  33. }
  34. int llena(tipo_pila *ptr_pila) {
  35.     if (ptr_pila-> tope == 50000)
  36.         return 1;
  37.     else
  38.         return 0;
  39. }
  40.  
  41. int main() {
  42.     tipoelemento, *tipo_pila, *aux, menor = 50000;
  43.     int cantidad, codigo, cd;
  44.     ptr_pila = (tipo_pila*) malloc(sizeof(tipo_pila));
  45.     nuevaPila( ptr_pila);
  46.     printf("introduzca el codigo:");
  47.     scanf("%d", &cd.codigo);
  48.     if (cd.codigo == 0)
  49.         return 1;
  50.     else {
  51.         while (cd.codigo != 0) {
  52.             printf("introduzcael nombre:");
  53.             scanf("%s", &cd.nombre);
  54.             printf(" introduzca la cantidad");
  55.             scanf("%d", &cantidad);
  56.             push(ptr_pila, cd);
  57.             printf("introduzca el codigo:");
  58.             scanf("%d", &codigo);
  59.         }
  60.  
  61.         printf("pila original:\n");
  62.         visualpila(ptr_pila);
  63.         printf("los discos con mas de 1000 copias vendidas:\n");
  64.         while (!vacia(ptr_pila)) {
  65.             cd = pop(ptr_pila);
  66.             if (cd.cantidad > 1000)
  67.                 printf("%d %s %d \n", cd.codigo, cd.nombre, cd.cantidad);
  68.             if (cd.cantidad < menor)
  69.                 menor = cd.cantidad;
  70.             push(aux, cd);
  71.         }
  72.         printf("discos con menores copias \n");
  73.         while (!vacia(aux)) {
  74.             cd = pop(aux);
  75.             if (cd.cantidad == menor)
  76.                 printf("%d %s %d \n", cd.codigo, cd.nombre, cd.cantidad);
  77.             else
  78.                 push(ptr_pila.cd);
  79.         }
  80.     }

Bueno, veo un horrores, no errores en tu código:

En la línea 42 no se sabe que tipo es tipoelemento,
en la linea 44 no se sabe de que tipo es ptr_pila,
en la linea 47 tratas a cd como una estructura cuando este es declarado como un entero.
.
.
.
y en fin me canso escribir todo lo que veo

Un consejo, cuando programas aplicaciones largas ve siempre probando las funciones que tienes completas en cada paso y no después de haber escrito todo verificar si esta funciona bien, ya que si salta un error, la depuración es de todo y no de una parte específica, eso es una muy mala práctica en programación.
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%