elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda en lista C++ !!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda en lista C++ !!!  (Leído 1,783 veces)
Necrø

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda en lista C++ !!!
« en: 10 Octubre 2016, 18:46 pm »

Saludos!

Este es mi primer tema en este foro, bueno para ir al grano mi problema se trata de un while que se encuentra en la función mostrar de una lista, el problema con este es que no se cumplen las condiciones de su interior. Solo entra.  :-\

La idea de este programa es que muestre información de una caja dada un número de clientes, donde se muestra el tiempo y productos (Todos los datos son generados por el usuario). Dado estos datos se debe mostrar el mayor, menor de los productos y el promedio del tiempo, pero dado el problema con ese while (while(a != NULL)) no se muestra de forma correcta. Ya que muestra el mayor y menor como iguales y en el promedio muestra otro valor.

Adjunto mi código:

Código
  1. /*
  2. Plataforma: Dev-C++
  3. */
  4.  
  5. #include <iostream>
  6. #include <stdlib.h>
  7. using namespace std;
  8.  
  9. struct nodo
  10. {
  11.    int clientes;
  12.    int tiempo;
  13.    int productos;
  14.    nodo *sig;
  15. };
  16.  
  17. class lista
  18. {
  19. private:
  20. nodo *aux;   //Cabeza
  21.  
  22. public:
  23. lista();   // Constructor
  24. ~lista(); //Destructor
  25. void ingreso(int i);
  26. void mostrarC();
  27. void mostrar(int n);
  28. };
  29.  
  30. lista::lista()
  31. {
  32. aux=NULL;
  33. }
  34.  
  35. lista::~lista()
  36. {
  37. nodo *q;
  38. while (aux)
  39. {
  40. q=aux;
  41. aux=aux->sig;
  42. delete q;
  43. }
  44. }
  45.  
  46. void lista::ingreso(int i)
  47. {
  48.     aux = new (nodo);
  49.     aux->clientes=i;
  50.     cout<<"Datos extras :"<<endl;
  51.     cout<<"Tiempo: "<<endl;
  52. cin>>aux->tiempo;
  53. cout<<"Productos: "<<endl;
  54. cin>>aux->productos;
  55. system("cls");
  56. }
  57.  
  58. void lista::mostrarC() //Muestra cantidad de clientes
  59. {
  60. nodo *b;
  61. b=aux;
  62.    while(b != NULL)
  63.    {
  64. cout <<" "<<b->clientes << endl;
  65.        b = b->sig;
  66.    }
  67.  
  68. }
  69.  
  70. void lista::mostrar(int n) //Muestra datos extras: Tiempo y Productos
  71. {
  72. nodo *a;
  73. a=aux;
  74. int prom=0, menor, mayor;
  75.  
  76.        cout<<"Informacion Caja: "<<endl;
  77. cout<<endl;
  78.  
  79.        while (a != NULL)
  80. {
  81. if(mayor<(a->productos)) //Busca el mayor
  82. mayor=a->productos;
  83.  
  84. if(menor>(a->productos)) //Busca el menor
  85. menor=a->productos;
  86.  
  87. prom+=a->tiempo; //Suma los tiempos para el promedio
  88. a=a->sig;
  89.    }
  90.    cout<<"Mayor: "<<mayor<<" productos."<<endl;
  91.    cout<<endl;
  92.    cout<<"Menor: "<<menor<<" productos."<<endl;
  93.    cout<<endl;
  94.    cout<<"Promedio del tiempo (aprox): "<<prom/n<<" min."<<endl; //Muestra y calcula el promedio
  95. }
  96.  
  97. int main ()
  98. {
  99. lista C;
  100. int n;
  101. cout<<"Numero de Clientes?: "; //Pide cuantos clientes quieres en tu lista
  102. cin>>n;
  103.    if(n==0)
  104.    {
  105.     cout<<"\n"<<"Lista Vacia"<<endl;
  106. }
  107. else
  108. {
  109.    for(int i=1;i<=n;i++)
  110. {
  111.        C.ingreso(i);
  112.    }
  113.    cout<<"Cantidad de Clientes: ";
  114.    C.mostrarC();
  115.    cout<<endl;
  116.    C.mostrar(n);
  117. }
  118.   return 0;
  119. }

Espero que me puedan ayudar y de antemano gracias  :rolleyes:


En línea

MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: Ayuda en lista C++ !!!
« Respuesta #1 en: 10 Octubre 2016, 20:09 pm »

El método ingreso no está bien. Cada vez que lo llames machacarás la raíz de la lista.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Lista RGB - Ayuda
Diseño Gráfico
Luisango 5 2,382 Último mensaje 1 Junio 2006, 01:10 am
por Error_404
Cargar Lista de un fichero con fseek a una lista auxiliar en el programa.
Programación C/C++
samur88 1 3,118 Último mensaje 12 Mayo 2011, 23:25 pm
por samur88
Ayuda Lista Enlazada
Programación C/C++
robluis 5 5,428 Último mensaje 9 Mayo 2012, 03:49 am
por botella
[AYUDA] Con lista en C
Programación C/C++
agrey 8 2,929 Último mensaje 13 Diciembre 2012, 17:14 pm
por rir3760
lista de adyacencia ayuda
Programación C/C++
danielSoccer 0 1,967 Último mensaje 16 Noviembre 2016, 05:16 am
por danielSoccer
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines