Ir ao conteúdo
  • Cadastre-se

C Exercício Linguagem c: Pilha


Jonatan Soares

Posts recomendados

Estou tentando resolver um exercício só que está bem difícil, segue a pergunta abaixo:

 

Escreva um programa que leia números inteiros informados pelo usuário e guarda em duas filas:

Lista 1 - Com números negativos. O programa deve parar de ler os números quando o usuário informar um valor positivo ou zero. 
Lista 2 - Com números positivos. O programa deve parar de ler os números quando o usuário informar um valor negativos ou zero.
Depois da leitura das duas filas, crie uma terceira fila, contendo uma junção dos elementos da lista 1 e 2, 
alternando seus elementos, ou seja, enfileirando um elemento da lista 1,
depois um elemento da lista 2, depois um da lista 1, depois um da lista 2, e assim, sucessivamente.

Em seguida, exiba os valores da lista 3.

 

A lista 1 e 2 consegui fazer, mas quando chegou na lista 3 não entendi como faz para alternar os valores da lista 1 e 2, gostaria de saber se alguém pode me ajudar, segue abaixo meu programa.

 

#include <stdio.h>
#include "structno.c"
#include "funfila.c"

int main()
{
    int valor1, valor2, valor3,numeroneg=-1, numeropos=1;
    no *lista1 = NULL;
    no *lista2 = NULL;
    no *lista3 = NULL;
    
    printf("Aperte 0 para parar\n");
    while(numeroneg!=0)
    {
        
        printf("Entre com os  numero negativos: ");
        scanf("%i", &numeroneg);
        
        enfileirar(&lista1, numeroneg);
        
    }
    
    while((valor1=desenfileirar(&lista1))!=NULL)
    {
        printf("%i\n", valor1);
    }
    
    printf("Aperte 0 para parar\n");
        
        while(numeropos!=0)
    {
        printf("Entre com os  numeros positivos: ");
        scanf("%i", &numeropos);
        
        enfileirar(&lista2, numeropos);
        
    }
        while((valor2=desenfileirar(&lista2))!=NULL)
    {
        printf("%i\n", valor2);
    }    
    
    getch();
    return 0;
}

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