Programación General > C++ Builder

 Otro codigo en el que necesito colaboracion

(1/1)

iic610:
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 ---#include <stdio.h>#include <stdlib.h>#include <stddef.h> typedef struct nodo {int num;struct nodo *sig;}tiponodo;typedef tiponodo *pila; pila apilar (pila p,int e); //almacena el elemento e en la pilapila desapilar (pila p); //elimina el ultimo elemento introducido en la pila pint cima (pila p); //devuelve el ultimo elemento introducido en la pila ppila pnula (void); //construye una pila p sin elementosint nula (pila p); //decide si la pila p tiene elementos*/ main () {int a,b,num,llevada;pila pa,pb,aux;int suma;char respa,respb;pa = pnula();pb = pnula();aux = pnula();respa='a';respb='a';llevada = 0;printf("Paso al programa de los numeros que se quieren sumarn");while (respa != 'n') {printf("Introduce el numero a: ");scanf("%d",&a);apilar(pa,a);printf("Deseas continuar metiendo elementos en la pila a (introduce n si no quires continuar)n: ");/*setbuf(stdin,NULL);*/scanf("%c",&respa);}while (respb != 'n') {printf("Introduce el numero b: ");scanf("%d",&b);apilar(pb,b);printf("Deseas continuar metiendo elementos en la pila b (introduce n si no quires continuar): n");/*setbuf(stdin,NULL);*/scanf("%c",&respb);}while ((nula(pa) != 1) && (nula(pb) != 1 )) {printf("entro en el primer bucle");a = cima(pa);b = cima(pb);desapilar(pa);desapilar(pb);suma = a + b + llevada;llevada = 0;if (suma>9) llevada = 1; apilar(aux,suma);printf("salgo del primer bucle");}while (nula(aux) != 1) {printf("entro en el segundo bucle");num = cima(aux);desapilar(aux);printf("El numero resultantes es el siguiente");printf("%d",num);printf("salgo del segundo bucle");}} pila pnula (void) {return(NULL);} pila desapilar (pila p) {pila q;q = (pila) malloc (sizeof(tiponodo));q = p;p = p->sig;free(q);return(p);} pila apilar (pila p,int e) {pila q;q = (pila) malloc (sizeof(tiponodo));q->num = e;q->sig = p;p = q;return(p);} int cima (pila p) {int e;if (nula(p) == 1)printf("La pila esta vacian");elsee = p->num;return(e);} int nula (pila p) {int resultado;printf("he entrado en el buclen");if (p==NULL) {resultado = 1;printf("La pila esta vacian");}else {resultado = 0;printf("La pila no esta vacian");}return(resultado);} 

Eternal Idol:
Depuralo.

iic610:
Gracias!no se me habia ocurrido.....

Eternal Idol:
De nada, a ver si la proxima vez estas mas ocurrente y pones el codigo entre la etiqueta CODE.

Navegación

[0] Índice de Mensajes

Ir a la versión completa