Ir para conteúdo

Arquivado

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

Recommended Posts

Preciso fazer uma lista duplamente encadeada para ela inserir os números, mostrando eles, localizar em qual posição eles estão e excluir. Eu fiz o código, mas preciso que os números mostrem o número atual, o anterior e o próximo. Que na hora de compilar, que ele mostre o numero anterior, o atual e o próximo em um pequeno menuzinho.

 

Segue o código que eu criei até agora. 

 

 

 

 

#include <stdio.h>


struct Lista{


int num;

struct Lista *prox;

struct Lista *ant;

};


struct Lista* criarNovoElemento(){

struct Lista *novo = NULL;

novo = malloc(sizeof(struct Lista));


printf("Informe o numero..: ");

scanf("%i", &(*novo).num);

(*novo).prox = NULL;




return novo;

}


inserir (struct Lista **a){

if (*a == NULL){

*a = criarNovoElemento();

} else{

struct Lista *aux;

aux = *a;

while( (*aux).prox != NULL){

aux = (*aux).prox;

}

(*aux).prox = criarNovoElemento();


}

}


mostrar(struct Lista **a){

if (*a == NULL){

printf("\n....Cadastro vazio....\n");

} else{

struct Lista *aux;

aux = *a;

while( aux != NULL){


printf("\nAtual..: %i", (*aux).num);

aux = (*aux).prox;



}

}

printf("\n");

system("pause");

}


localizar (struct Lista **a){

if (*a == NULL){

printf("\n....Cadastro vazio....\n");

} else{

int num = 0;

int achei = 0;

int cont = 0;

printf("Informe o numero: ");

scanf("%i", &num);

struct Lista *aux;

aux = *a;

while( aux != NULL && achei == 0){

cont += 1;

if ((*aux).num == num){

achei = 1;

}

aux = (*aux).prox;

}

if (achei == 1){

printf("\n.....Achei na posicao: %i.....\n", cont);

} else{

printf("\n.....Nao Achei....\n");

}

}

printf("\n");

system("pause");

}


excluir(struct Lista **a){


if (*a== NULL){ // verificar se existe algum elemento na lista

printf("\n....Cadastro vazio....\n");

} else{

struct Lista *aux =*a;

a= (**a).prox;

free(aux);

}

printf("\n");

system("pause");

}






main (){

struct Lista *inicio = NULL;

int opcao = 0;

while(opcao != 9){

system ("cls");

printf("\n[1] Inserir Elemento");

printf("\n[2] Mostrar Elemento");

printf("\n[3] Localizar Elemento");

printf("\n[4] Excluir ");


printf("\n[9] Finalizar");

printf("\nInforme a opcao: ");

scanf("%i", &opcao);

switch(opcao){

case 1 : inserir(&inicio); break;

case 2 : mostrar(&inicio); break;

case 3 : localizar(&inicio); break;

case 4 : excluir(&inicio); break;


case 9 : printf("Programa finalizado");

}

}

}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por josenilson
      Olá pessoal !
       
      Estou tentando rodar um projeto de um jogo na minha maquina porem o mesmo pede para adicionar o log4cxx 0.10.0, realizei pesquisas na internet a respeito mas até agora nada, Encontre para baixar nesse site https://logging.apache.org/log4cxx/1.0.0/download.html porem não sei se devo instalar ele no windows porque ao exportar ele no projeto as depêndencias que precisam dele ficam informando o erro log4cxx.logger.h no such file or directory. a linguagem que estou usando e C++
       
       
    • Por mr22robot
      Ola caros amigos. 
      Estou com uma dúvida aqui que embora nao tenho achado ainda uma resposta, acredito que haja.
      Estou estudando a tão sonhada linguagem de programação asp.net core mvc. Linguagem essa que demorei 5 anos pra iniciar os estudos rsrs.
      Mas estou agarrado em uma situação. 
      Estou usando como base de dados nos meus estudos um banco Oracle. Que já tem algumas informações nele. Utilizei o SCAFFOLD para criar as classes e o contexto baseado no banco e tabelas existentes. 
      Porem agora na fase das consultas, estou perdido em como utilizar o IN que eu utilizo no oracle; no LINQ.
      Ex: 
      SELECT CODPROD,DESCRICAO FROM PRODUTO WHERE CODPROD IN(1,2,3,4,5,6) Como eu utilizo esse filtro com uma restrição de códigos de produtos? no caso o where codprod in(1,2,3,4,5,6) ?.
      Desde já obrigado pela ajuda.
    • Por biza
      Ola
      Estou  a construir um datalogger em código C.Desta forma necessito passar os dados entre ficheiros. O meu problema está na inclusão de algumas variáveis no topo de um arquivo .txt onde os dados são salvos. Variáveis como tempo de data e hora, id do dispositivo e muito mais... Para isso preciso de ajuda, gostaria que os dados estivessem disponíveis para todos os arquivos, até aí é fácil, basta incluir a variável como extern, no arquivos *.h e incluí-lo em todos os outros que você deseja que a variável esteja disponível. mas como posso fazer para ter acesso a ele dentro do array que preciso?
      Exemplo: main.c
      #include "main.h" char dateTimeFormat[24]; void main(void){ dateTimeFormat = "22-02-22 13:23:04"; } main.h
      extern char dateTimeFormat[24];  
      teste.c
       
      #include "main.h" extern char dateTimeFormat[24]; /*Header .txt file initialization*/ volatile char headerFile[] ="\n\n" "# HEALT MONITORING SYSTEM \r\n" "# DEVELOPED: BIZA \r\n" "# VERSION: B \r\n" "# DATATIMECAPTURE:"+dateTimeFormat+ "\r\n" "# SAMPLINGFREQUENCY: 500 \r\n" "# SAMPLECHANNELS: 1 2 3 4 5 6 7 8 \r\n" "# SAMPLINGRESULUTION: 24 \r\n" "# IDDEVICE: HEALTHY \r\n" "# ENDOFHEADER  
      Como posso incluir a variável "dateTimeFormat" dentro do headerFile como descrevi acima?
       
    • Por luis0101010
      1.      Programe uma função que recebe um número inteiro e verifica se todos os dígitos deste número são iguais ou diferente e liste eles em ordens crescentes.
      Obs: Código fonte com no mínimo de 10 dígitos.
       
      Como exemplo, os números 456, −235, e 5 satisfazem esta condição, enquanto que o número 6 não.
       
      2.      Crie também a função main que recebe o valor do número digitado pelo usuário e exibe na tela uma mensagem informando se os dígitos deste número são iguais.
       
      Exemplo:
      --Exemplo 1:
      Informe um número:
      -555
      Numero informado possui todos os dígitos iguais
      --Exemplo 2:
      Informe um número:
      67
      Número informado não possui todos os dígitos iguais
    • Por alexdyna
      Prezados,
      Amigos tenho que fazer um trabalho da faculdade onde o professor me da um arquivo que vou colocar anexo e tenho que fazer um algoritmo que leia o arquivo e monte uma tabela com as informações.
      pelo que vejo ele tem na primeira linha 8 barra e nas demais linha 10 barras
      ate a ultima que seria sua parada onde temos 2 barras seguidas.
       
      ficaria muito grato com a ajuda de todos.
       
      No arquivo anexo esta o texto:
      Nome/telefone/nascimento/Horas Curso/vendas T1/vendas T2/vendas T3/vendas T4/
       Luiz Ranza Neo/99934-5255/05/12/1989/200/107099,072578621/76915,8996218681/100922,271239691/76372,9971916498/
      Richard de Barrissaia/99326-4689/18/03/1990/150/55123,0080621828/68062,2200055909/67233,9928593779/45236,5928531083/
      Rodrigo Abalâminos/99911-7413/09/08/1987/168/71697,3866071191/58063,5644108225/88183,6230762134/48160,3116315664/
      José Gigfrid/99658-7874/15/04/1997/135/48816,199086596/50086,3689415844/52916,3066872779/55232,0663463164/
      Luiza Celly Silva/99659-1214/01/02/2000/90/29208,8223591438/39361,8088384592/45062,056112236/38913,7237126574/
      Maria Kunlun/99686-7845/21/04/1984/182/92076,1053757689/80440,5339844205/87575,0546657182/79220,9398178354/
      //
       
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.