Ir ao conteúdo

Posts recomendados

Postado

Como faço para calcular a porcentagem de numeros imapres nessa pilha?

int main () {

   int valor, numeros;

   TipoPilha pilhaPar, pilhaImpar; //Pilha 

   TipoItem itemPar, itemImpar;

   FpVazia(&pilhaPar);

   FpVazia(&pilhaImpar);

   printf("Quantos numeros deseja digitar? ");

   scanf("%d", &numeros);

   printf("Digite os valores:\n");

      for (int i = numeros ; i > 0; i--) { //Empilhando os valores.

         scanf("%d", &valor);

            if (!(valor % 2)) { // Coloca o valor impar ou par na Chave e empilha

               itemPar.Chave = valor;

               Empilha(itemPar, &pilhaPar);

            }

            else {   

            itemImpar.Chave = valor;

               Empilha(itemImpar, &pilhaImpar);

            }

 

Postado

Pose o programa inteiro, compilável. Ajude os outros a te ajudar :)

 

        if (!(valor % 2))
        {  // Coloca o valor impar ou par na Chave e empilha
            itemPar.Chave = valor;
            Empilha(itemPar, &pilhaPar);
        }
        else
        {
            itemImpar.Chave = valor;
            Empilha(itemImpar, &pilhaImpar);
        }

 

?

 

Tem uma pilha para os pares e outra para os impares? o que pretende fazer?

Postado

@arfneto na realidade eu quero criar uma pilha com numeros variados , e dessa pilha calcular a porcentagem de numeros impares !

void insere_elemento(Pilha *pi){
    /*a cada inserção alocamos dinamicamente um espaço para um novo elemento*/
    Elemento *novo =(Elemento*) malloc(sizeof(Elemento));
    printf("Digite o numero a ser inserido na pilha: ");
    scanf("%d",&novo->num);
    /*como o número inserido será o novo topo, ele apontará para o topo atual que será o segundo elemento da pilha*/
    novo->prox = pi->topo;
    /*topo aponta para o endereço de novo*/
    pi->topo = novo;
    printf("\nNumero inserido na pilha!");
    getch();
}

 

 

Armazena esses numeros e calcular a porcentagem de impares q existe nessa pilha!

  • Curtir 1
Postado

@Anny Silva a pilha tem nomes consagrados para os métodos, PUSH, POP e TOP. Não sei se deve mudar isso.

 

Todo livro usa isso, toda linguagem usa isso.

 

E onde está sua dificuldade? Se é você que vai criar a pilha acrescente um caso size e um campo odd e mantenha atualizado.

 

No geral a pilha não tem esses métodos de listar tudo ou percorrer tudo ou avaliar qualquer parâmetro estatístico sobre o conteúdo.

 

Todo o valor da pilha está justamente em esconder todo o conteúdo exceto pelo último valor... Não se chama pilha --- stack --- por acaso.

 

 

Postado

@AdrianoSiqueira fiz mais ou menos , mas acho q ta errado :

 

void impar(int *valor)
{
if((valor% 2==0)
empilha(pilhapar,valor);
else
empilha(pilhaimpar,valor);
}

void porcentagem_impar(pilhaimpar *total){
  x= pilhaimpar*100/total;

}

Postado

@Anny Silva

Com base na pergunta. Em específico, comensurar pares e ímpares de uma pilha; envolve relacionar os métodos: desempilhar [pop] e um contar. No caso, como não escrevemos o método empilhar, usa-se uma pilha já pronto para debug: escrita na programação. 

Postado
9 horas atrás, Anny Silva disse:

na realidade eu quero criar uma pilha com numeros variados , e dessa pilha calcular a porcentagem de numeros impares !

 

E por outro lado

 

1 hora atrás, Anny Silva disse:

oid impar(int *valor)
{
if((valor% 2==0)
empilha(pilhapar,valor);
else
empilha(pilhaimpar,valor);
}

void porcentagem_impar(pilhaimpar *total){
  x= pilhaimpar*100/total;

}

 

Não faz sentido a distinção de pilha par ou pilha impar. Pilha devia ser só pilha. Uma pilha de qualquer coisa. O fato de nesse caso ser de int é apenas detalhe

 

Tem um enunciado objetivo sobre isso?

 

Use os nomes clássicos: pop push e top. Se precisa disso dinamicamente apenas insira na pilha um contador de pares ou de impares. O contador de tamanho já deveria ter. É básico. Não precisa de cálculos adicionais.

 

Poste o código completo, compilável.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!