Informática, perguntado por shirleysantana4466, 1 ano atrás

Uma estrutura de dados do tipo pilha pode ser usado em um algoritmo que permite imprimir uma palavra de forma invertida. Exemplo: FELICIDADE deve ser impresso como EDADICILEF.Utilizando o algoritmo abaixo:#include#includeint i, topo = 0, tamanho = 0;char pilha [50];char palavra [50];void empilhar ( char letra);char desempilhar (void);int main (void){printf(''Digite a palavra: '');scanf ( ''%s, palavra);tamanho = strlen (palavra);for ( i = 0; i < tamanho; i++){empilhar(palavra[i] );}printf (''Palavra normal: %s\n'', palavra);for ( i = 0; i <= tamanho; i++){palavra [i] = desempilhar ();}printf( ''Palavra invertida: %s\n'', palavra);return (0);}Em C, faça o que se pede nos seguintes itens a seguir:a) desenvolva a rotina empilhar (push) que inclui um elemento na pilha.b) desenvolva a rotina de desempilhar (pop) que retira um elemento da pilha.c) complete o algoritmo que lê uma palavra e, usando a pilha, a imprime de forma invertida.

Soluções para a tarefa

Respondido por almirbcruz
2

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

 

 

int main(int argc, char *argv[]) {

 

       char pilha[50],palavra[50];

       int i,tamanho;

       void empilhar(char letra);

       char desempilhar (void);

       printf("Digite a frase que pretendes que invertida: ");

       gets(pilha);  //Armazena a frase na variável pilha

       tamanho=strlen(pilha)-1;    //strlen calcula a quantidade de caracteres que possui a pilha

       for(i=0;pilha[i]!='\0';i++){        //Repete enquanto não chegar ao final da pilha

       palavra[tamanho]=pilha[i];

       tamanho--;     

       }

       palavra [i]='\0';      // o programa pode mostrar lixo

       strcpy(pilha,palavra);    //Copia para a variável pilha o conteúdo da variável palavra

       printf("\n\nA frase inversa e:\n%s\n\n",pilha);

system("pause");

 

            return 0;

}


Perguntas interessantes