×
Ir ao conteúdo
  • Cadastre-se

C Porcentagem numeros impares em uma pilha


Anny Silva

Posts recomendados

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);

            }

 

Link para o comentário
Compartilhar em outros sites

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?

Link para o comentário
Compartilhar em outros sites

@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
Link para o comentário
Compartilhar em outros sites

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

 

 

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

@AdrianoSiqueira ueu não estou conseguindo escrever em c@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;

}

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

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

Curso de Hacker Ético

LANÇAMENTO!

CLIQUE AQUI E CONFIRA!

* Este curso não é ministrado pela equipe do Clube do Hardware.