Ir ao conteúdo

Exercício que Mostre as duas estruturas Pilha e Fila no mesmo Programa


Raul Tavares

Posts recomendados

Postado

Preciso Resolver esse exercício abaixo:

Elaborar um programa que controle duas estruturas, onde a primeira é uma pilha e a segunda é uma fila. O usuário poderá escolher entre a inclusão e a exclusão de um elemento, sendo que se a opção escolhida for a inclusão, deverá ser perguntado ao mesmo um nome. Ao término de cada operação do usuário, as duas estruturas devem ser apresentadas na tela.

Postado

É o seguinte Massita, criei o código, quando vou fazer uma inclusão de um nome, eu tenho que digitar duas vezes o nome para ele imprimir tanto na fila como na pilha, e quero que o programa peça pra mim digitar uma vez só, e quando eu digitar, ele imprimir o nome na pilha e na fila, como posso fazer?

void novacaixa() {

novop = (caixapilha *) malloc(sizeof(caixapilha));

novop->proxpilha = NULL;

novof = (caixafila *) malloc(sizeof(caixafila));

novof->proxfila = NULL;

printf("\nDigite um nome: "); gets(novop->nome); gets(novof->nome);

}

Tem algum comando que eu possa fazer pra ele imprimir o resultado na pilha e na fila ao mesmo tempo?

Quando informo o nome, o programa pede pra mim digitar de novo, e eu quero digitar uma vez só e que ele imprima na pilha e na fila!

Abraço!!!

Postado

Dá um erro: Lvalue required

Amigão, sou novo nessa linguagem, peço

que me desculpe =/

na parte:

nomep->nome = nome;

nomef->nome = nome;

dá esse erro de Lvalue required,

eu inseri esse código que você me disse depois do

printf("\nDigite um nome: ");

Está correto?

Um amigo meu disse pra mim criar outra variável e utilizar o comando strcpy,

como posso fazer?

Abraço

Postado

Seu compilador é "bem bom" ou você errou em algum lugar.

strcpy vai gastar espaço na memória à toa (uma vez que você vai ter 3 diferentes lugares na memória),não é uma boa.


#include <stdlib.h>
#include <stdio.h>

typedef struct
{
char *ptr;
} exemplo;

int main()
{
char *ex = malloc(20);
exemplo st;
gets(ex);
st.ptr = ex;
free(ex);
return 0;
}

Compilou beleza no gcc e icc (só reclamou do uso de gets,que é deprecated).

Att. regreth

Postado

"novop->nome" e "nomef->nome" são char[](array) ou char*(ponteiro)? Se for uma array seu endereço é fixo e a atribuição não tem sentido; vai dar erro.

Postado

"novop->nome" e "nomef->nome" são char*(ponteiro)!

Uso o Compilador Turbo C, que é o que usamos na faculdade!

Eu não quero postar o meu código inteiro aqui porque tem alunos

que estudam na mesma sala que eu, aí eles podem pegar meu código

e apresentar na sala, aí eu me ferro!

Tem algum e-mail que eu possa passar o código pra vocês que entendem?

Só tá faltando isso cara, imprimir na pilha e na fila ao mesmo tempo, mas o programa pede duas vezes pra eu digitar um nome :(

Valeu!

Postado

class (ou struct) Novo{

char *nome;

};

class (ou struct) Nome{

char *nome;

};

int function(){

Novo novop; Novo *novop2;

Nome nomep; Nome *nomep2;

char *aux = malloc(20);

printf("\nDigite um nome: ");

gets(aux);

novop.nome = aux;

nomep.nome = aux;

novop2->nome = aux;

nomep2->nome = aux;

}

Vê se tá como seu código. Esse erro aponta problemas de atribuição. Coisas como x+y=z; podem gerar esse tipo de erro.

A coisa mais fácil pra fazer agora é copiar o código do regreth e ver se pra você dá erro de compilação. Se não der, o erro COM CERTEZA está em algum ponto do seu código.

Se for passar alguma coisa passa pro regreth. Eu não tenho tanta experiência com a linguagem, só dou uns palpites aqui e ali.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...