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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Porque me sale error al querer imprimir el contenido de la pila en: 31 Julio 2016, 19:51 pm
El programa tiene que permitir el ingreso de nombre de libros, una vez ingresado se mostrara un mensaje si quiere seguir ingresando si la respuesta es n el programa ordena los libros en orden alfabetico y luego los muestra por pantalla.... Compila pero no ejecuta correctamente , help me please!!!


Código
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <conio.h>
  5.  
  6. typedef struct nodo{
  7. char libro[100];
  8. struct nodo *siguiente;
  9. }tiponodo;
  10.  
  11. typedef tiponodo *pnodo;
  12. typedef tiponodo *pila;
  13.  
  14. void ingresar(char *a);
  15. void push(pila *p,char a[]);
  16. void ordenar(pila *p);
  17. void mostrar(pila p);
  18.  
  19. int main()
  20. {
  21. pila p=NULL;
  22. char libro[100];
  23. char res='S';
  24.  
  25. while(res=='S'||res=='s')
  26. {
  27. ingresar(libro);
  28. push(&p,libro);
  29. printf(" Desea seguir ingresando: ");
  30. scanf("%s",&res);
  31. }
  32.  
  33. ordenar(&p);
  34. mostrar(p);
  35.  
  36. }
  37.  
  38. void ingresar(char *a)
  39. {
  40. printf("\n Ingrese el nombre del libro: ");
  41. scanf("%s",a);
  42. }
  43.  
  44. void push(pila *p,char a[])
  45. {
  46. pnodo nuevo;
  47. nuevo=(pnodo)malloc(sizeof(tiponodo));
  48. strcpy(nuevo->libro,a);
  49. nuevo->siguiente=*p;
  50. *p=nuevo;
  51. }
  52.  
  53. void ordenar(pila *p)
  54. {
  55. pnodo i,j;
  56. i=*p;
  57. j=*p;
  58. char c[100];
  59.  
  60. while(i!=NULL)
  61. {
  62. while(j!=NULL&&(j->siguiente)!=NULL)
  63. {
  64. if(strcmp(j->libro,(j->siguiente)->libro)>0)
  65. {
  66. strcpy(c,j->libro);
  67. strcpy(j->libro,(j->siguiente)->libro);
  68. strcpy((j->siguiente)->libro,c);
  69. }
  70. j=j->siguiente;
  71. }
  72. i=i->siguiente;
  73. j=i;
  74. }
  75. }
  76.  
  77. void mostrar(pila p)
  78. {
  79. pnodo aux;
  80. aux=p;
  81. while(aux!=NULL)
  82. {
  83. printf("\n El libro es %s",aux->libro);
  84. aux=aux->siguiente;
  85. }
  86. }
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines