• Lunes 8 de Julio de 2024, 06:44

Autor Tema:  Otro codigo en el que necesito colaboracion  (Leído 1212 veces)

iic610

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Otro codigo en el que necesito colaboracion
« en: Miércoles 26 de Noviembre de 2008, 20:58 »
0
Se supone q mi codigo pretende sumar dos numeros enteros muy grandes mediante la utilizacion de pilas. No se que narices pasa xo no me entra en ninguno de los dos ultimos bucles tal vez xq considera las pilas nulas¿?Ayuda porfa!!

Código: Text
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <stddef.h>
  4.  
  5. typedef struct nodo {
  6. int num;
  7. struct nodo *sig;
  8. }tiponodo;
  9. typedef tiponodo *pila;
  10.  
  11. pila apilar (pila p,int e); //almacena el elemento e en la pila
  12. pila desapilar (pila p); //elimina el ultimo elemento introducido en la pila p
  13. int cima (pila p); //devuelve el ultimo elemento introducido en la pila p
  14. pila pnula (void); //construye una pila p sin elementos
  15. int nula (pila p); //decide si la pila p tiene elementos*/
  16.  
  17. main () {
  18. int a,b,num,llevada;
  19. pila pa,pb,aux;
  20. int suma;
  21. char respa,respb;
  22. pa = pnula();
  23. pb = pnula();
  24. aux = pnula();
  25. respa='a';
  26. respb='a';
  27. llevada = 0;
  28. printf("Paso al programa de los numeros que se quieren sumarn");
  29. while (respa != 'n') {
  30. printf("Introduce el numero a: ");
  31. scanf("%d",&a);
  32. apilar(pa,a);
  33. printf("Deseas continuar metiendo elementos en la pila a (introduce n si no quires continuar)n: ");
  34. /*setbuf(stdin,NULL);*/
  35. scanf("%c",&respa);
  36. }
  37. while (respb != 'n') {
  38. printf("Introduce el numero b: ");
  39. scanf("%d",&b);
  40. apilar(pb,b);
  41. printf("Deseas continuar metiendo elementos en la pila b (introduce n si no quires continuar): n");
  42. /*setbuf(stdin,NULL);*/
  43. scanf("%c",&respb);
  44. }
  45. while ((nula(pa) != 1) && (nula(pb) != 1 )) {
  46. printf("entro en el primer bucle");
  47. a = cima(pa);
  48. b = cima(pb);
  49. desapilar(pa);
  50. desapilar(pb);
  51. suma = a + b + llevada;
  52. llevada = 0;
  53. if (suma>9)
  54. llevada = 1;
  55. apilar(aux,suma);
  56. printf("salgo del primer bucle");
  57. }
  58. while (nula(aux) != 1) {
  59. printf("entro en el segundo bucle");
  60. num = cima(aux);
  61. desapilar(aux);
  62. printf("El numero resultantes es el siguiente");
  63. printf("%d",num);
  64. printf("salgo del segundo bucle");
  65. }
  66. }
  67.  
  68. pila pnula (void) {
  69. return(NULL);
  70. }
  71.  
  72. pila desapilar (pila p) {
  73. pila q;
  74. q = (pila) malloc (sizeof(tiponodo));
  75. q = p;
  76. p = p->sig;
  77. free(q);
  78. return(p);
  79. }
  80.  
  81. pila apilar (pila p,int e) {
  82. pila q;
  83. q = (pila) malloc (sizeof(tiponodo));
  84. q->num = e;
  85. q->sig = p;
  86. p = q;
  87. return(p);
  88. }
  89.  
  90. int cima (pila p) {
  91. int e;
  92. if (nula(p) == 1)
  93. printf("La pila esta vacian");
  94. else
  95. e = p->num;
  96. return(e);
  97. }
  98.  
  99. int nula (pila p) {
  100. int resultado;
  101. printf("he entrado en el buclen");
  102. if (p==NULL) {
  103. resultado = 1;
  104. printf("La pila esta vacian");
  105. }
  106. else {
  107. resultado = 0;
  108. printf("La pila no esta vacian");
  109. }
  110. return(resultado);
  111. }
  112.  

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Otro codigo en el que necesito colaboracion
« Respuesta #1 en: Miércoles 26 de Noviembre de 2008, 22:29 »
0
Depuralo.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

iic610

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Otro codigo en el que necesito colaboracion
« Respuesta #2 en: Jueves 27 de Noviembre de 2008, 17:01 »
0
Gracias!no se me habia ocurrido.....

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Otro codigo en el que necesito colaboracion
« Respuesta #3 en: Jueves 27 de Noviembre de 2008, 17:36 »
0
De nada, a ver si la proxima vez estas mas ocurrente y pones el codigo entre la etiqueta CODE.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.