Ir ao conteúdo

Fernando Vieira

Membro Júnior
  • Posts

    17
  • Cadastrado em

  • Última visita

Tudo que Fernando Vieira postou

  1. @arfneto sim,estou estudando agorinha mesmo sobre ..
  2. @arfneto Consegui rodar o codigo muito obrigado!
  3. @arfneto olá amigo,usei o "define" e rodou o programa, porém não esta executando os comandos do menu do mesmo! uso o visual studio 2019, porém o mesmo começou a travar e agora estou usando um compilador online.. não sabia dessa do scanf mas obrigado.. segue o código : #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #define _CTR_SECURE_NO_WARNINGS struct ListaArtista { char musica[50], artista[50]; float duracao; struct ListaArtista *prox; }; struct ListaArtista *inicio, *meio, *fim, *aux; void inserirMusica(){ int c; struct ListaArtista *novo = (struct ListaArtista *)malloc(sizeof(struct ListaArtista)); printf("\nSelecione a musica"); scanf(novo->musica, 49, stdin); printf("De qual artista? "); scanf(novo->artista, 49, stdin); printf("Duracao da musica? "); scanf("%f", &novo->duracao); while ((c = getchar()) != '\n' && c != EOF) {} // Limpar buffer do teclado novo->prox = NULL; if (inicio == NULL) //A Fila esta vazia e iremos inserir o primeiro elemento { inicio = fim = novo; } else{ fim->prox = novo; fim = novo; } } void LimparLista() { char ch; if (inicio == NULL) { printf("\nLista\n"); } else { printf("s/n "); ch = getchar(); if (ch == 's' || ch == 'S') { while (inicio != NULL) { aux = inicio; inicio = inicio->prox; free(aux); // Limpa o espaco da memoria } printf("\nLista vazia\n"); } } } void VizualizarLista() { aux = inicio; if (inicio == NULL) { printf("\n Lista vazia!"); } else { while (aux != NULL) { printf("musica:%s", aux->musica); printf("artista: %s", aux->artista); printf("duracao: %f\n\n", aux->duracao); aux = aux->prox; } } printf("\n"); } void ProcurarMusica() { aux = inicio; if (inicio == NULL) { printf("\nLista vazia"); } else { char musica[50]; printf("Digite a faixa: "); scanf("%s", &aux); while (aux != NULL) { if (musica == aux->musica) { printf("\n Musica %s encontrada\n", aux->musica); printf("musica %s", aux->musica); printf("cantor:%s\n", aux->artista); return; } else { aux = aux->prox; } } if (aux == NULL) { printf("\nMusica %s não encontrada!", musica); } } printf("\n"); } int main() { setlocale(LC_ALL, ""); int opc, c; do { printf("1.Inserir música\n"); printf("2.Procuar música\n"); printf("3.Vizualizar lista\n"); printf("4.Limpar lista\n"); printf("5.Sair\n"); printf("Escolha o opção!"); scanf("%d", &opc); while((c == getchar()) != 'n' && c != EOF ) {} switch (opc) { case 1: inserirMusica(); system("pause"); break; case 2: ProcurarMusica(); system("pause"); break; case 3: VizualizarLista(); system("pause"); break; case 4: LimparLista(); system("pause"); break; case 5: exit; break; default: printf("Opcão incorreta!"); break; } system("cls"); } while (opc != 5); return 0; } segue o erro
  4. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> struct ListaArtista { char musica[50], artista[50]; float duracao; struct ListaArtista *prox; }; struct ListaArtista *inicio, *meio, *fim, *aux; void inserirMusica(){ int c; struct ListaArtista *novo = (struct ListaArtista *)malloc(sizeof(struct ListaArtista)); printf("\nSelecione a musica"); scanf_s(novo->musica, 49, stdin); printf("De qual artista? "); scanf_s(novo->artista, 49, stdin); printf("Duracao da musica? "); scanf_s("%f", &novo->duracao); while ((c = getchar()) != '\n' && c != EOF) {} // Limpar buffer do teclado novo->prox = NULL; if (inicio == NULL) //A Fila esta vazia e iremos inserir o primeiro elemento { inicio = fim = novo; } else{ fim->prox = novo; fim = novo; } } void LimparLista() { char ch; if (inicio == NULL) { printf("\nLista\n"); } else { printf("s/n "); ch = getchar(); if (ch == 's' || ch == 'S') { while (inicio != NULL) { aux = inicio; inicio = inicio->prox; free(aux); // Limpa o espaco da memoria } printf("\nLista vazia\n"); } } } void VizualizarLista() { aux = inicio; if (inicio == NULL) { printf("\n Lista vazia!"); } else { while (aux != NULL) { printf("musica:%s", aux->musica); printf("artista: %s", aux->artista); printf("duracao: %f\n\n", aux->duracao); aux = aux->prox; } } printf("\n"); } void ProcurarMusica() { aux = inicio; if (inicio == NULL) { printf("\nLista vazia"); } else { char musica[50]; printf("Digite a faixa: "); scanf_s("%s", &aux); while (aux != NULL) { if (musica == aux->musica) { printf("\n Musica %s encontrada\n", aux->musica); printf("musica %s", aux->musica); printf("cantor:%s\n", aux->artista); return; } else { aux = aux->prox; } } if (aux == NULL) { printf("\nMusica %s não encontrada!", musica); } } printf("\n"); } int main() { setlocale(LC_ALL, ""); int opc, c; do { printf("1.Inserir música\n"); printf("2.Procuar música\n"); printf("3.Vizualizar lista\n"); printf("4.Limpar lista\n"); printf("5.Sair\n"); printf("Escolha o opção!"); scanf_s("%d", &opc); while((c == getchar()) != 'n' && c != EOF ) {} switch (opc) { case 1: inserirMusica(); system("pause"); break; case 2: ProcurarMusica(); system("pause"); break; case 3: VizualizarLista(); system("pause"); break; case 4: LimparLista(); system("pause"); break; case 5: exit; break; default: printf("Opcão incorreta!"); break; } system("cls"); } while (opc != 5); return 0; } o seguinte erro está sendo apresentado: main.c: In function ‘inserirMusica’: main.c:17:3: warning: implicit declaration of function ‘scanf_s’ [-Wimplicit-function-declaration] scanf_s(novo->musica, 49, stdin); ^~~~~~~ /tmp/ccoYoKWZ.o: In function `inserirMusica': main.c:(.text+0x3e): undefined reference to `scanf_s' main.c:(.text+0x71): undefined reference to `scanf_s' main.c:(.text+0x9a): undefined reference to `scanf_s' /tmp/ccoYoKWZ.o: In function `ProcurarMusica': main.c:(.text+0x2a2): undefined reference to `scanf_s' /tmp/ccoYoKWZ.o: In function `main': main.c:(.text+0x3da): undefined reference to `scanf_s' collect2: error: ld returned 1 exit status
  5. Muito obrigado! Vou me dedicar mais ao mundo da programação, abraços!!
  6. funcionou! mas eu tambem precisaria que o codigo procura-se os alunos cadastrados por meio do "ru"
  7. não, na verdade peguei partes que eu entendia de um codigo mais complicado, e redigitei para eu entender com base nos meu conhecimentos!
  8. sim sou novato no mundo da programação!! poderia me ajudar pra rodar o codigo??
  9. estou usando o visual studio 2019, onde eu colocaria o main??
  10. @vangodp retornou o seguinte erro ompilation failed due to following error(s)./usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 0 has invalid symbol index 11 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 1 has invalid symbol index 12 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 2 has invalid symbol index 2 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 3 has invalid symbol index 2 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 4 has invalid symbol index 11 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 5 has invalid symbol index 13 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 6 has invalid symbol index 13 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 7 has invalid symbol index 13 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 8 has invalid symbol index 12 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 9 has invalid symbol index 13 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 10 has invalid symbol index 13 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 11 has invalid symbol index 13 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 12 has invalid symbol index 13 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 13 has invalid symbol index 13 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 14 has invalid symbol index 13 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 15 has invalid symbol index 13 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 16 has invalid symbol index 13 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 17 has invalid symbol index 13 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 18 has invalid symbol index 13 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_info): relocation 19 has invalid symbol index 21 /usr/bin/x86_64-linux-gnu-ld: /usr/lib/debug/usr/lib/x86_64-linux-gnu/crt1.o(.debug_line): relocation 0 has invalid symbol index 2 /usr/lib/gcc/x86_64-linux-gnu/6/../../../x86_64-linux-gnu/crt1.o: In function `_start': (.text+0x20): undefined reference to `main' collect2: error: ld returned 1 exit status
  11. @Ricardov Ok, obrigado por ajudar!
  12. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> typedef struct aluno { int ru; char nome[45]; char email[60]; struct aluno * proximo; } t_cad; t_cad *ini_cad = NULL; // declara essa variavel global que ira armazenar o inicio da lista encadeada void cadastro() { int cont; t_cad* prox_cad; if (ini_cad == NULL) { ini_cad = (t_cad*)malloc(sizeof(t_cad)); ini_cad ->proximo = NULL; if (ini_cad == NULL) exit(1); } prox_cad = ini_cad; while (1) { printf("Digite o RU:"); scanf_s("%d", &prox_cad->ru); printf("Digite o Nome:"); scanf_s("%[^\n]", &prox_cad->nome, 45);//nome tem no máximo 45 caracteres printf("Digite o email:"); scanf_s("%s", &prox_cad->email, 60); //email tem no máximo 60 caracteres printf("Deseja continuar??? (1)SIM e (0)NAO"); ("\n %d", &cont); if (cont == 0) break; prox_cad->proximo = (t_cad *)malloc(sizeof(t_cad)); prox_cad = prox_cad->proximo; prox_cad->proximo = NULL; } printf("\n"); } void pesquisa() { int ru_aux; char nome_aux[60]; t_cad* prox_cad; do { printf("\n Digite parametro da pesquisa: \n1 RU \n2 Nome :\n0 para sair\n"); scanf("%d", &op); if (op == 0) break; prox_cad = ini_cad; switch (op) { case 1: printf("\n Digite o RU do Aluno:"); scanf("%d", &ru_aux); while (prox_cad != NULL) { if (prox_cad-> ru == ru_aux) { printf("ru: %d\n nome:%s\n email:%s", prox_cad->ru, prox_cad->nome, prox_cad->email); break; } prox_cad = prox_cad->proximo; } break; case 2: printf("\n Digite o nome do Aluno:"); scanf("%s", nome_aux);//não precisa de & para string while (prox_cad != NULL) { if (strcmp(prox_cad->nome, nome_aux) == 0) { printf("ru: %d\n nome:%s\n email:%s", prox_cad->ru, prox_cad->nome, prox_cad->email); break; } prox_cad = prox_cad->proximo; } break; default: printf("\n****opcao invalida*****"); break; } } while (1); } void liberarmem() { t_cad *prox_cad; while (ini_cad != NULL) { prox_cad = ini_cad; ini_cad = prox_cad->proximo; free(prox_cad); } } tenho um trabalho de faculdade para entregar segue o enunciado: Defina a estrutura de dados que você irá utilizar para fazer esta implementação e JUSTIFIQUE em texto porque você escolheu ela; 1. Deve-se armazenar o nome do aluno, seu e-mail e seu RU. Para o armazenamento utilize uma estrutura heterogênea de dados. 2. Não é necessário fazer a leitura dos dados dos dados dos alunos manualmente. Você já pode deixar pré-cadastrado os dados no seu código. Cadastre pelo menos uns 10 contatos de alunos na sua estrutura de dados. Um dos contatos deverá ser o seu próprio nome e o seu RU da UNINTER; 3. Em um menu na tela, peça para o usuário digitar um RU. O programa deverá realizar a busca por este RU na estrutura de dados e, caso localize o RU, deverá mostrar o nome correspondente do aluno e o e-mail deste contato. Caso não localize, uma mensagem de erro deve ser apresentada. 4. Para testar o programa, teste a busca com o seu RU e coloque a captura de tela Então segue meu código que esta compilando com erro: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> typedef struct aluno { int ru; char nome[45]; char email[60]; struct aluno * proximo; } t_cad; t_cad *ini_cad = NULL; // declara essa variavel global que ira armazenar o inicio da lista encadeada void cadastro() { int cont; t_cad* prox_cad; if (ini_cad == NULL) { ini_cad = (t_cad*)malloc(sizeof(t_cad)); ini_cad ->proximo = NULL; if (ini_cad == NULL) exit(1); } prox_cad = ini_cad; while (1) { printf("Digite o RU:"); scanf_s("%d", &prox_cad->ru); printf("Digite o Nome:"); scanf_s("%[^\n]", &prox_cad->nome, 45);//nome tem no máximo 45 caracteres printf("Digite o email:"); scanf_s("%s", &prox_cad->email, 60); //email tem no máximo 60 caracteres printf("Deseja continuar??? (1)SIM e (0)NAO"); ("\n %d", &cont); if (cont == 0) break; prox_cad->proximo = (t_cad *)malloc(sizeof(t_cad)); prox_cad = prox_cad->proximo; prox_cad->proximo = NULL; } printf("\n"); } void pesquisa() { int ru_aux; char nome_aux[60]; t_cad* prox_cad; do { printf("\n Digite parametro da pesquisa: \n1 RU \n2 Nome :\n0 para sair\n"); scanf("%d", &op); if (op == 0) break; prox_cad = ini_cad; switch (op) { case 1: printf("\n Digite o RU do Aluno:"); scanf("%d", &ru_aux); while (prox_cad != NULL) { if (prox_cad-> ru == ru_aux) { printf("ru: %d\n nome:%s\n email:%s", prox_cad->ru, prox_cad->nome, prox_cad->email); break; } prox_cad = prox_cad->proximo; } break; case 2: printf("\n Digite o nome do Aluno:"); scanf("%s", nome_aux);//não precisa de & para string while (prox_cad != NULL) { if (strcmp(prox_cad->nome, nome_aux) == 0) { printf("ru: %d\n nome:%s\n email:%s", prox_cad->ru, prox_cad->nome, prox_cad->email); break; } prox_cad = prox_cad->proximo; } break; default: printf("\n****opcao invalida*****"); break; } } while (1); } void liberarmem() { t_cad *prox_cad; while (ini_cad != NULL) { prox_cad = ini_cad; ini_cad = prox_cad->proximo; free(prox_cad); } } O seguinte erro é apresentado: main.c: In function ‘cadastro’: main.c:30:3: warning: implicit declaration of function ‘scanf_s’ [-Wimplicit-function-declaration] scanf_s("%d", &prox_cad->ru); ^~~~~~~ main.c: In function ‘pesquisa’: main.c:51:16: error: ‘op’ undeclared (first use in this function) scanf("%d", &op); ^~ main.c:51:16: note: each undeclared identifier is reported only once for each function it appears in
  13. Alguem tem o código funcionando estou precisando!! testei os do post e estou com o seguinte erro:main.c: In function ‘cadastro’: main.c:30:3: warning: implicit declaration of function ‘scanf_s’ [-Wimplicit-function-declaration] scanf_s("%d", &prox_cad->ru); ^~~~~~~ main.c: In function ‘pesquisa’: main.c:51:16: error: ‘op’ undeclared (first use in this function) scanf("%d", &op); ^~ main.c:51:16: note: each undeclared identifier is reported only once for each function it appears in

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