Ir para conteúdo
Fórum Script Brasil

stellamartins

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre stellamartins

stellamartins's Achievements

0

Reputação

  1. Olá pessoal, é a primeira vez que eu posto alguma coisa aqui... então desculpa qualquer coisa. Bom, meu professor passou a seguinte questão: >>duas pilhas sequenciais estão ordenadas a partir do topo. Transfira os elementos dessas pilhas para um terceira pilha, inicialmente vazia, de modo que ela fique oordenada decrescentemente (maior valor no topo). Suponha que não haja restrições de tamanho quanto a capacidade das pilhas. Tenho muitas duvidas, mas mesmo assim tentei fazer. O resultado foi o seguinte código... o compilador está apontando alguns erros e eu não to conseguindo corrigir, e por isso eu ainda não consegui ver se dá certo... me ajudem por favor! #include <stdio.h> #define max 3 main(){ int p1[max], p2[max], p3[max], p4[max], t1, t2, t3=-1, t4=-1, t, cheia,i; printf ("Inserindo os elementos na pilha 1 \n"); for (t1=0;t1<max;t1++) scanf ("%d", &p1[t1]); printf ("Inserindo os elementos na pilha 2 \n"); for (t2=0;t2<max;t2++) scanf ("%d",&p2[t2]); p3[t3]=-90000000; //printf ("%d %d\n", t1, t2); while (t1 >= 0 || t2 >= 0) { printf ("t1 %d t2 %d ", t1,t2); system("pause"); t1 = t2 = t1-1; printf ("t3 %d t1 %d\n", t3, t1); if (p1[t1] < p2[t2]) { if (p1[t1] == p3[t3]) t1--; else { if (p1[t1] > p3[t3]){ //teste t1 t3 vale printf ("antes incrementacao t3 %d t1 %d\n", t3, t1); printf ("antes incrementacao p3[t3] %d p1[t1] %d\n", p3[t3], p1[t1]); p3[++t3]=p1[t1--]; //teste t1 t3 vale depois incrementacao printf ("depois incrementacao t3 %d t1 %d\n", t3, t1); printf ("antes incrementacao p3[t3] %d p1[t1] %d\n", p3[t3], p1[t1]); } else{ if (p1[t1] <= p3[t3]){ while (p3[t3] >= p1[t1]){ if (p1[t1] == p3[t3]) t3--; else p4[++t4] = p3[t3--]; p4[++t4] = p3[t3--]; } p3[++t3] = p1[t1--]; } } else{ if (p2[t2] >p1[t1]){ if(p2[t2] == p3[t3]) t2--; else{ if(p2[t2] > p3[t3]) p3[++t3] = p2[t2--]; else{ while (p3[t3] >= p2[t2]) { if (p3[t3] == p2[t2]){ t3--; } else p4[++t4] = p3[t3--]; } p4[++t4] = p3[t3--]; while (t4 > -1){ p3[++t3] = p4[t4--]; } } } } } } } for (i=t3;i>=0;i--){ printf ("%d\t", p3[i]); p4[++t4] = p3[i]; } system ("pause"); }
×
×
  • Criar Novo...