Ir ao conteúdo
  • Cadastre-se

Marcela Dutra

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Reputação

0
  1. Pessoal não estou conseguindo validar esse campo, não quero deixar que o id se repita no cadastro o programa ate entra no laço para fazer a validação mais apos entrar no laco ele não sai. E ao tentar inserir um valor que não é repetido ele entra no laço para verficar e tambem nao sai struct Pessoa { int id; char nome[50]; struct Pessoa *proximo;};struct Controle { struct Pessoa *pilha;};struct Pessoa *incluir (struct Pessoa *ultimoinserido){ struct Pessoa *auxiliar; auxiliar = (struct Pessoa*) malloc(sizeof(struct Pessoa)); printf(" digite o nome:"); scanf("%s",&auxiliar->nome); printf("digite o id:"); scanf("%d",&auxiliar->id); while (ultimoinserido != NULL){ if(ultimoinserido->id==auxiliar->id){ printf("digite o id:"); scanf("%d",&auxiliar->id); } } auxiliar->proximo = NULL; if (ultimoinserido != NULL){ auxiliar->proximo = ultimoinserido; } return auxiliar;}int main(){ int opcao = 1; struct Controle minhapilha; minhapilha.pilha = NULL; while (opcao != 4) { printf("2 incluir \n"); printf("4 sair \n"); printf("digite a opcao "); scanf("%d",&opcao); if (opcao == 2){ minhapilha.pilha = incluir(minhapilha.pilha); } }}
  2. Pessoal não estou conseguindo validar esse campo, não quero deixar que o id se repita no cadastro o programa ate entra no laço para fazer a validação mais apos entrar no laco ele não sai. E ao tentar inserir um valor que não é repetido ele entra no laço para verficar e tambem nao sai struct Pessoa { int id; char nome[50]; struct Pessoa *proximo;};struct Controle { struct Pessoa *pilha;};struct Pessoa *incluir (struct Pessoa *ultimoinserido){ struct Pessoa *auxiliar; auxiliar = (struct Pessoa*) malloc(sizeof(struct Pessoa)); printf(" digite o nome:"); scanf("%s",&auxiliar->nome); printf("digite o id:"); scanf("%d",&auxiliar->id); while (ultimoinserido != NULL){ if(ultimoinserido->id==auxiliar->id){ printf("digite o id:"); scanf("%d",&auxiliar->id); } } auxiliar->proximo = NULL; if (ultimoinserido != NULL){ auxiliar->proximo = ultimoinserido; } return auxiliar;}int main(){ int opcao = 1; struct Controle minhapilha; minhapilha.pilha = NULL; while (opcao != 4) { printf("2 incluir \n"); printf("4 sair \n"); printf("digite a opcao "); scanf("%d",&opcao); if (opcao == 2){ minhapilha.pilha = incluir(minhapilha.pilha); } }}
  3. Obrigado amigo ja consegui resolver o problema era um errinho mesmo no meu strcmp
  4. antes mesmo de chegar na funcao da erro bem aqui buscar(minhapilha.pilha, nome);
  5. Galera estou precisando de uma força em um método de busca em uma pilha dinâmica codigo: typedef struct{ char cidade[20]; char uf[2]; char nome[20]; char sigla[2]; struct AEROPORTO *proximo;} AEROPORTO;typedef struct{ AEROPORTO *pilha;} CONTROLE;AEROPORTO *incluir (AEROPORTO *ultimoinserido){ AEROPORTO *auxiliar; auxiliar = (AEROPORTO *) malloc(sizeof(AEROPORTO)); printf ("digite a cidade: "); scanf("%s",&auxiliar->cidade); printf ("digite o uf: "); scanf("%s",&auxiliar->uf); printf ("digite o nome do aeroporto: "); scanf("%s",&auxiliar->nome); printf ("digite a sigla do aeroporto: "); scanf("%s",&auxiliar->sigla); auxiliar->proximo = NULL; if (ultimoinserido != NULL) { auxiliar->proximo = ultimoinserido; } return auxiliar;}void buscar (AEROPORTO *busca,char nome){ AEROPORTO *auxiliar; auxiliar = busca; while (auxiliar != NULL) { //Alguma dica por aqui } return;}int main(){ char opcao; char nome[20]; CONTROLE minhapilha; minhapilha.pilha = NULL; while (opcao != '6') { printf("1 incluir\n"); printf("2 buscar\n"); printf("6 sair\n"); printf("opcao: "); scanf("%c",&opcao); switch (opcao) { case '1': minhapilha.pilha = incluir(minhapilha.pilha); break; case '2': //Duvida aqui em como fazer uma busca ao tentar passar os valores da erro printf ("informe o nome: "); scanf ("%s", nome); buscar(minhapilha.pilha, nome); break; } } return 0;}
  6. Obrigado me ajudou muito estou indignado com meu erro.
  7. Bom dia, sou nova no fórum Estou com um problema em uma validação obrigada pela ajuda O problema é o seguinte: Estou tentando fazer que o programa não deixe gravar id repetido, só que o programa esta verificando somente o primeiro id cadastrado e pulando os outros. #include <stdio.h> #include <stdlib.h> #include <stdbool.h> #define MAX 5 typedef struct { int id; char modelo[8]; char fabricante[30]; int passageiros; float comprimento; float altura; float velocidade; float altitude; char motor [10]; } AVIAO; typedef struct { AVIAO vetor[MAX]; int nElementos; } LISTA; void criarLista(LISTA *lista) { lista->nElementos = 0; } bool IdRepitido(int id, LISTA *lista) { int i; for(i=0; i < lista->nElementos; i++) { if(id == lista->vetor[i].id) { return true; }else{ return false; } } } int main() { char op=0; LISTA lista; AVIAO av; criarLista(&lista); do { printf ("1 - Inserir\n"); printf ("2 - Sair\n"); printf ("opcao: "); scanf ("%c", &op); switch(op) { case '1': printf ("ID: "); scanf("%d", &av.id); while(IdRepitido(av.id,&lista)){ printf ("ID: "); scanf("%d", &av.id); } printf ("passageiros: "); scanf("%d", &av.passageiros); printf ("comprimento: "); scanf("%f", &av.comprimento); printf ("altura: "); scanf("%f", &av.altura); printf ("velocidade: "); scanf("%f", &av.velocidade); printf ("altitude: "); scanf("%f", &av.altitude); printf ("modelo: "); scanf("%s", av.modelo); printf ("fabricante: "); scanf("%s", av.fabricante); printf ("motor: "); scanf("%s", av.motor); inserir(&lista, av); } break; } } while(op!='2');

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