Ir ao conteúdo
  • Cadastre-se

PauloC19

Membro Pleno
  • Posts

    38
  • Cadastrado em

  • Última visita

Tudo que PauloC19 postou

  1. @AnsiC Assim, O exércício: Fazer um código em C que realiza a busca de dados(nome, email...). Fazer a busca com uma estrutura de dados(Para fazer implementação) Precisa amrazenar o nome, email, e o código. Amazenar em uma estrutura heterogênea de dados. Não precisa fazer a leitura do dados manualmente(Pensando bem, pode sim, né!? Ficaria melhor, tudo digitado, e posteriormente salvo, certo!?) e tem a opção de deixar os dados pré-armazenados. Fazer o menu com as opções, digita o código e busca esses dados. adicionado 4 minutos depois @AnsiC De acordo como pedido no exércicio acima, particularmente, não preciso deixar os dados armazenados, pode ser tudo digitado pelo usuário e salvo no programa...Com isso, o código, o nome, sobrenome é digitado pelo usuário, salvo, depois com uma opção de busca digita apenas o código, e imprimi na tela as outras informações...
  2. @AnsiC Boa tarde! Desculpe talvez algumas explicações...Dessa maneira acho que era até melhor, o usuário digita as informações, o programa salva, e depois lista na tela os dados inseridos, porém, esses dados precisam está armazenados no programa para que o usuário apenas digite a numeração, e assim, imprimi na tela os outros dados, nome e sobrenome, por ex.
  3. @AnsiC Olha: int MostrarDados(DadosAluno *a, int num, char nome[3][2][100]) { char nome[3][2][100] = { "nome0", "Sobrenome0" "Nome1", "Sobrenome1", "Nome2", "Sobrenome2"}; int num[3][2] = { "0000", "1111", "2222" }; int direita, esquerda; if (a == NULL) return 0; if (a->info == num) //Localizou o noh { return 1; } if (num < a->info) //Percorre pela esquerda, caso o numero seja menor do que a raiz { esquerda = buscar_ordenada(a->esq, num); } else { direita = buscar_ordenada(a->dir, num); } return esquerda + direita; } adicionado 18 minutos depois @AnsiC Como relacionaria esse dados? Tipo assim, armazenando as numerações, nome e sobrenome...entrar na condição if/else tipo a do código abaixo, referente a cada numeração e imprimir na tela os dados dessa numeração. Ex: O usuário digitou a numerção, se a mesma estiver armazenda com suas seguintes informações: if(.......){ printf("Nome: %s", ........); printf("Sobrenome: %s", .......); } e assim, fazer isso com todos os dados que estão armazenados.... int MostrarDados(DadosAluno *a,) { char nome[3][100] = { "nome0","nome1", "nome2"}; char sobrenome[3][100] = {"sobrenome0", "sobrenome1", "sobrenome2"}; int num[3][2] = {}; int direita, esquerda; if (a == NULL) return 0; if (a->info == num) //Localizou o noh { return 1; } if (num < a->info) //Percorre pela esquerda, caso o numero seja menor do que a raiz { esquerda = buscar_ordenada(a->esq, num); } else { direita = buscar_ordenada(a->dir, num); } return esquerda + direita; }
  4. @AnsiC Por exemplo, olha a função que pode ser implementada na árvore binária: Estou tentando armazenar todos os dados em um vetor, uma base daquela, tipo que você explicou mais não sei por onde ir. Na base da árvore binário que tenho, os valores são digitados e armazenados, e com isso faz a busca, no código que preciso tenho que armazenar no programa e buscar. int buscar_ordenada(Arvore *a, int num) { int direita, esquerda; if(a==NULL) return 0; if(a->info==num) //Localizou o noh { return 1; } if(num<a->info) //Percorre pela esquerda, caso o numero seja menor do que a raiz { esquerda=buscar_ordenada(a->esq,num); } else { direita=buscar_ordenada(a->dir,num); } return esquerda+direita; } adicionado 1 minuto depois @AnsiC Digitar o número dos dados armazenados e cair no if ou else e imprimir os dados da numeração digitada...
  5. @AnsiC Essa parte de declarar amarzenar no vetor... void MostrarDados(char nome[50], char sobrenome[50], int num) { char nome[20][50]; char sobrenome[20][50]; int num, num1, num2, num3, num4, num5, num6, num7, num8, num9; nome[0][0] == nome1; sobrenome[0][1] == sobrenome1; num = 0000 num->nome[0][0] = sobrenome[0][1]; nome[0][0] = num; ......
  6. @AnsiC Por exemplo: void Buscar(char nome, char sobrenome){ nome[0][0] = 'nome1' sobrenome[0][1] = 'sobrenome1' if((nome1[0][0]) && (sobrenome1[0][1]) == 0000) printf("Nome: %s", nome1[0][0]); printf("Sobrenome: %s", Sobrenome1[0][1]); } Perdido por onde declarar as situações?
  7. @AnsiC Por exemplo quero pré-armazenar 5 dados, preciso de 5 vetores nome e sobrenome, e sequências de if e else? void Buscar(int num, char nome[50], char sobrenome[50]) { if (*ElementoVarredura == NULL) { ElementoDaArvoreBinaria *NovoElemento = NULL; NovoElemento = (ElementoDaArvoreBinaria*)malloc(sizeof(ElementoDaArvoreBinaria)); NovoElemento->esquerda = NULL; NovoElemento->direita = NULL; NovoElemento->dado = num; *ElementoVarredura = NovoElemento; return; } } if (num < (*ElementoVarredura)->dado) { Inserir(&(*ElementoVarredura)->esquerda, num); } else { if (num > (*ElementoVarredura)->dado) { Inserir(&(*ElementoVarredura)->direita, num); } } } Aqui pode ser tudo apagado?
  8. @AnsiC Bom dia! Sim, estou tentando implementar nessa base de árvore binário, preciso fazer uma função de busca...Ex: Digita a numeração 0000, e aperece na tela os dados do mesmo nome1 e sobrenome1, digita: 1111, aparece nome2, sobrenome2, mais ou menos assim. precisa deixar os dados pré-armazenados no programa, e assim quando digitar a numeração chama os dados específicos a ela.
  9. Preciso desenvolver um código em linguagem c utilizando uma estrutura de dados , onde o mesmo faça a busca a partir de uma numeração digitada pelo usuário e retorne na tela os dados relacionados aquela numeração. precisa deixar os dados armazenados no programa, e assim quando digitar uma numeração específica, por exemplo, retorna na tela o nome e sobrenome referente a ela, o armazenamento precisa ser feito em uma estrutura heterogênea de dados. Estou tentando implementar utilizando a estrutura de dados do tipo árvore binária(Retirei a maioria da funções) como exemplo o código abaixo: #include<stdlib.h> #include<stdio.h> struct BuscaDados{ int num; char nome[50]; char sobrenome[50]; struct BuscaDados *direita, *esquerda; }; int menu(); void Buscar(char nome[50], char sobrenome[50], int num); int main() { int op, num, c; char nome[50]; char sobrenome[50]; ElementoDaArvoreBinaria *root; root = (ElementoDaArvoreBinaria*)malloc(sizeof(ElementoDaArvoreBinaria)); root = NULL; while (1) { op = menu(); switch (op) { case 1: //Busca os dados printf("Digite a numeração: "); scanf_s("%d", &num); while ((c = getchar()) != '\n' && c != EOF) {} //Limpa o buffer do teclado Buscar(nome[50], sobrenome[50], num); break; case 2: break; case 3: break; case 4: return 0; default: printf("Opcao invalida!\n"); } } return 0; } int menu() { int op, c; system("cls"); printf("1.Buscar dados do aluno\n"); printf("2.Sair\n"); printf("Escolha uma opcao: "); scanf_s("%d", &op); while ((c = getchar()) != '\n' && c != EOF) {} //Limpa o buffer do teclado system("cls"); return op; } void Buscar(int num, char nome[50], char sobrenome[50]) { if (*ElementoVarredura == NULL) { ElementoDaArvoreBinaria *NovoElemento = NULL; NovoElemento = (ElementoDaArvoreBinaria*)malloc(sizeof(ElementoDaArvoreBinaria)); NovoElemento->esquerda = NULL; NovoElemento->direita = NULL; NovoElemento->dado = num; *ElementoVarredura = NovoElemento; return; } } if (num < (*ElementoVarredura)->dado) { Inserir(&(*ElementoVarredura)->esquerda, num); } else { if (num > (*ElementoVarredura)->dado) { Inserir(&(*ElementoVarredura)->direita, num); } } } Quais outros parâmetros preciso retirar, mudar? Como armazenar esses dados, por exemplo, nome e sobre, armazenar 10 dados nome e sobrenome, cada dado com sua numeração, Assim ao digitar um numeração rertone suas respectivas informações?
  10. @Flávio Pedroza Boa noite! O erro ao apertar enter quando digitado o nome da música, foi solucionado com essas alterações, mas continua a imprimir a informações de forma incorreta. Alterações feita nos scanf_s: int main() { int op, c; char nm[20]; char ab[20]; float duracao; Head = NULL; while (1) { op = menu(); switch (op) { case 1: //Adiciona a musica printf("Digite o nome da musica: "); scanf_s("%s", nm, 20); while ((c = getchar()) != '\n' && c != EOF) {} // Limpa o buffer do teclado printf("Digite o nome do artista/banda: "); scanf_s("%s", ab, 20); while ((c = getchar()) != '\n' && c != EOF) {} // Limpa o buffer do teclado printf("Digite o tempo de duracao da musica: "); scanf_s("%f", &duracao); while ((c = getchar()) != '\n' && c != EOF) {} // Limpa o buffer do teclado AdicionarMusica(nm, ab, duracao); break; Parte do código para imprimir as informações na tela: void Playlist() { Playlist_Musica *ElementoVarredura; ElementoVarredura = (struct Playlist_Musica *)malloc(sizeof(struct Playlist_Musica)); ElementoVarredura = Head; if (ElementoVarredura == NULL) { return; } while (ElementoVarredura != NULL) { printf("Musica: %s", ElementoVarredura->nm); printf("Artista/Banda %s", ElementoVarredura->ab); printf("Duracao %f", ElementoVarredura->duracao); ElementoVarredura = ElementoVarredura->prox; printf("\n"); }
  11. @Flávio Pedroza Estou quase lá, com essas alterações imprimiu na tela as informações, com %c e com %s, aparece um erro. O código com %c, executa, mas as informações que são imprimidas na tela aparecem de forma incorreta, quando modifca colocando %s, ao digitar o nome da música e apertar enter ele apresenta o seguinte erro: Código com %c: Não mostra as informações da forma correta.
  12. @Flávio Pedroza Boa noite. Obrigado! todos os erros foram eliminados, e o programa está executando...Mas agora, a parte para mostrar/listar, a função "Playlist" para imprimir na tela a músicas que foram adicionadas, não aparece as informações, quando digita a opção 3, volta para o menu, um loop infinito...O que está errado? será que é esse while, e esses comandos nessa parte do código? void Playlist() { Playlist_Musica *ElementoVarredura; ElementoVarredura = (struct Playlist_Musica *)malloc(sizeof(struct Playlist_Musica)); ElementoVarredura = Head; if (ElementoVarredura == NULL) { return; } while (ElementoVarredura != NULL) { printf("Musica: %c", ElementoVarredura->nm); printf("Artista/Banda %c", ElementoVarredura->ab); printf("Duracao %f", ElementoVarredura->duracao); ElementoVarredura = ElementoVarredura->prox; } printf("\n"); system("pause"); return; }
  13. Preciso desenvolver um código que para emular as características de um player de música, o mesmo precisa ser criado com o tipo de estrutura lista encadeadas...A princípio modifiquei vários parâmetros de um código base de uma lista encadeada simples. Crie funções para Adicionar e Mostrar as Músicas, mas no final o código persiste em erros, alguém pode me ajudar chegar a uma conclusão? O código, e o print com os erros: #include<stdio.h> #include<stdlib.h> int menu(); void AdicionarMusica(char nm, char ab, float duracao); void Playlist(); struct Playlist_Musica { char nm[20]; char ab[20]; float duracao; Playlist_Musica *prox; } *Head; int main() { int op, c; char nm[20]; char ab[20]; float duracao; while (1) { Head = NULL; op = menu(); switch (op) { case 1: //Adiciona a musica printf("Digite o nome da musica: ") scanf_s("%s" &nm); while ((c = getchar()) != '\n' && c != EOF) {} printf("Digite o nome do artista/banda: "); scanf_s("%s", &ab); while ((c = getchar()) != '\n' && c != EOF) {} printf("Digite o tempo de duracao da musica: "); scanf_s("%f", &duracao); while ((c = getchar()) != '\n' && c != EOF) {} AdicionarMusica(char nm[20], char ab[20], float duracao); Break; case 2: Break; case 3: Playlist(); break; case 4: return 0; Break; default: printf("Opção invalida!\n"); } } return 0; int menu() { int op, c; system("cls"); printf("*************Menu***************") printf("1 - Adicionar Musica na Playlist\n"); printf("2 - Remover Musica da Playlist\n"); printf("3 - Playlist\n"); printf("4 - Sair\n"); printf("Escolha a opcao desejada:\n"); scanf_s("%d", &op); while ((c = getchar()) != '\n' && c != EOF) {} // Limpa o buffer do teclado system("cls"); return op; } void AdicionarMusica(char nm, char ab, float duracao) { Playlist_Musica *NovaElemento; NovaElemento = (struct Playlist_Musica *)malloc(sizeof(struct Playlist_Musica)); NovoElemento->dado = nm[20]; NovoElemento->dado = ab[20]; NovoElemento->dado = duracao; if (Head == NULL) { Head = NovoElemento; Head->prox = NULL; } else { NovoElemento->prox = Head; Head = NovoElemento; } } void Playlist() { Playlist_Musica *ElementoVarredura; ElementoVarredura = (struct Playlist_Musica *)malloc(sizeof(struct Playlist_Musica)); ElementoVarredura = Head; if (ElementoVarredura == NULL) { return; } while (ElementoVarredura != NULL) { printf("Musica: %s", ElementoVarredura->nm); printf("Artista/Banda %s", ElementoVarredura->ab); printf("Duracao %f", ElementoVarredura->duracao); ElementoVarredura = ElementoVarredura->prox; } printf("\n"); system("pause"); return; }

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!