Ir ao conteúdo
  • Cadastre-se

Vagabond1001

Membro Pleno
  • Posts

    25
  • Cadastrado em

  • Última visita

Tudo que Vagabond1001 postou

  1. @Mayrinck Bernardo Então a 4 seria Lista, pois é o primeiro a sair. Certo?
  2. @Mayrinck Bernardo Então é fila certo?
  3. Estou fazendo um questionário para estudo de 15 questão mas estou com duvidas nessas questões. Alguém pra ajudar? Marquei assim, mas tenho certeza que esta errado: 1-D 3-D 4-C 5-C 7-C 11-B
  4. Amigo perfeito, era exatamente isso. Estava embanando tudo nesse int main Obrigado!
  5. Meu Deus nem tinha visto kkkk Agora ficou assim: Lista Vazia: 0 Lista Cheia: 0 Tamanho da Lista: 1 Ainda assim não apresenta os resultados adicionado 1 minuto depois Veja como esta o codigo: #include <stdlib.h> #include <stdio.h> #include <string.h> #define LISTAS 5 struct aluno { int matricula; char nome[100]; float n1; float n2; float n3; }; //typedef só declara um typedef struct aluno Aluno; struct lista { int qtde; Aluno alunos[LISTAS]; }; typedef struct lista Lista; struct lista* cria_lista(){ struct lista *li; li=(struct lista *)malloc(sizeof(struct lista)); if(li != NULL) li->qtde = 0; return li; }; int lista_vazia(struct lista *li) { if(li != NULL) return (li->qtde ==0); else return -1; }; int lista_cheia(struct lista *li) { if(li !=NULL) return (li->qtde == LISTAS); else return -1; }; int tamanho_lista(Lista *li) { if(li != NULL) return li->qtde; else return -1; }; int fim_lista(struct lista *li, struct aluno *al){ if (!lista_cheia(li)){ li->alunos[li->qtde] = *al; li->qtde++; return -1; } else { return 0; } } int main() { Lista* li; Aluno al; al = (Aluno){ .matricula = 65464, .nome = "Maria" }; al = (Aluno){ .matricula = 65567, .nome = "Marcos" }; al = (Aluno){ .matricula = 68865, .nome = "Renan" }; al = (Aluno){ .matricula = 78890, .nome = "Filipe" }; al = (Aluno){ .matricula = 78900, .nome = "Rafael" }; al = (Aluno){ .matricula = 78900, .nome = "João" }; li = cria_lista(); fim_lista(li, &al); printf("\nLista vazia: %d ", lista_vazia(li)); printf("\nLista cheia: %d ", lista_cheia(li)); printf("\nTamanho da lista: %d ", tamanho_lista(li)); }
  6. Pois é, e mesmo assim sempre imprime os mesmos valores: Lista Vazia: 1 Lista cheia: 0 Tamanho da lista: 0 Nunca altera isso
  7. Mas o retorno esta em LISTAS que eu defini em 20, agora buguei kkk Pode apontar no codigo o valor a ser alterado?
  8. //Dado a estrutura básica para a construção de uma lista estática, pede-se que seja criada uma função responsável por inserir um elemento no final da lista. //Essa função precisará receber como parâmetro a lista (ponteiro) e o elemento a ser inserido. //Dentro da função main, será necessário chamar a função para inserir elemento ao final e, logo em seguida, mostrar o resultado da função que recupera o tamanho da lista. #include <stdlib.h> #include <stdio.h> #include <string.h> #define LISTAS 20 struct aluno { int matricula; char nome[100]; float n1; float n2; float n3; }; //typedef só declara um typedef struct aluno Aluno; struct lista { int qtde; Aluno alunos[LISTAS]; }; typedef struct lista Lista; struct lista* cria_lista(){ struct lista *li; li=(struct lista *)malloc(sizeof(struct lista)); if(li != NULL) li->qtde = 0; return li; }; int lista_vazia(struct lista *li) { if(li != NULL) return (li->qtde ==0); else return -1; }; int lista_cheia(struct lista *li) { if(li !=NULL) return (li->qtde == LISTAS); else return -1; }; int tamanho_lista(Lista *li) { if(li != NULL) return li->qtde; else return -1; }; int fim_lista(struct lista *li, struct aluno *al){ if (!lista_cheia(li)){ li->alunos[li->qtde] = *al; li->qtde++; return -1; } else { return 0; } } int main() { Lista* li; Aluno al; al = (Aluno){ .matricula = 65464, .nome = "Maria" }; al = (Aluno){ .matricula = 65567, .nome = "Marcos" }; al = (Aluno){ .matricula = 68865, .nome = "Renan" }; al = (Aluno){ .matricula = 78890, .nome = "Filipe" }; al = (Aluno){ .matricula = 78900, .nome = "Rafael" }; al = (Aluno){ .matricula = 78900, .nome = "João" }; li = cria_lista(); fim_lista(li, &al); li = cria_lista(); printf("\nLista vazia: %d ", lista_vazia(li)); printf("\nLista cheia: %d ", lista_cheia(li)); printf("\nTamanho da lista: %d ", tamanho_lista(li)); }
  9. Eu usei, porém ficava dando conflito. Não aparecia nada na tela, mas quando tirei o loop, voltou a funcionar.
  10. Realmente, gostei mais: int tamanho_lista(Lista* li) int tamanho_lista(Lista* li) O problema esta sendo que não contabiliza a quantidade de usuários e aparece o resultado como lista cheia ou vazia: int main() { Lista* li; Aluno al; al = (Aluno){ .matricula = 65464, .nome = "Maria" }; al = (Aluno){ .matricula = 65567, .nome = "Marcos" }; al = (Aluno){ .matricula = 68865, .nome = "Renan" }; al = (Aluno){ .matricula = 78890, .nome = "Filipe" }; al = (Aluno){ .matricula = 78900, .nome = "Rafael" }; li = cria_lista(); fim_lista(li, &al); li = cria_lista(); printf("\nLista vazia: %d ", lista_vazia(li)); printf("\nLista cheia: %d ", lista_cheia(li)); printf("\nTamanho da lista: %d ", tamanho_lista(li)); } O resultado impresso sempre esta sendo: Lista Vazia: 1 Lista cheia: 0 Tamanho da lista: 0
  11. Perfeito, consegui executar fazendo as alterações, veja: #include <stdlib.h> #include <stdio.h> #include <string.h> #define LISTAS 50 struct aluno { int matricula; char nome[100]; float n1; float n2; float n3; }; typedef struct aluno Aluno; struct lista { int qtde; Aluno alunos[LISTAS]; }; typedef struct lista Lista; struct lista* cria_lista(){ struct lista *li; li=(struct lista *)malloc(sizeof(struct lista)); if(li != NULL) li->qtde = 0; return li; }; int lista_vazia(struct lista *li) { if(li != NULL) return (li->qtde ==0); else return -1; }; int lista_cheia(struct lista *li) { if(li !=NULL) return (li->qtde == LISTAS); else return -1; }; int tamanho_lista(struct lista *li) { if(li != NULL) return li->qtde; else return -1; }; int fim_lista(struct lista *li, struct aluno *al){ if (!lista_cheia(li)){ li->alunos[li->qtde] = *al; li->qtde++; return -1; } else { return 0; } } int main() { Lista* li; Aluno al; al = (Aluno){ .matricula = 65464, .nome = "Maria Silva" }; li = cria_lista(); fim_lista(li, &al); li = cria_lista(); printf("\nLista vazia: %d ", lista_vazia(li)); printf("\nLista cheia: %d ", lista_cheia(li)); printf("\nTamanho da lista: %d ", tamanho_lista(li)); } Uma pergunta, o resulta impresso sai: Lista Vazia: 1 Lista cheia: 0 Tamanho da lista: 0 Para poder tornar como uma lista cheia, posso inserir mais função e declarações como esta? al = (Aluno){ .matricula = 65464, .nome = "Maria Silva" }; Para poder inserir mais usuários?
  12. Sabe me dizer por que não aparece nenhum resultado? #include <stdlib.h> #include <stdio.h> #include <string.h> #define LISTAS 50 struct aluno { int matricula; char nome[100]; float n1; float n2; float n3; }; struct lista { int qtde; struct aluno a[LISTAS]; }; struct lista* cria_lista(){ struct lista *li; li=(struct lista *)malloc(sizeof(struct lista)); if(li != NULL) li->qtde = 0; return li; }; int lista_vazia(struct lista *li) { if(li != NULL) return (li->qtde ==0); else return -1; }; int lista_cheia(struct lista *li) { if(li !=NULL) return (li->qtde == LISTAS); else return -1; }; int tamanho_lista(struct lista *li) { if(li != NULL) return li->qtde; else return -1; }; int fim_lista(struct lista *li, struct aluno *al){ if (!lista_cheia(li)){ li->a[li->qtde] = *al; li->qtde++; return -1; } else { return 0; } } int main() { struct lista *li; struct aluno al; al = (struct aluno){.matricula=65464, .nome="Maria Silva"}; fim_lista(li, &al); li = cria_lista(); printf("\nLista vazia: %d ", lista_vazia(li)); printf("\nLista cheia: %d ", lista_cheia(li)); printf("\nTamanho da lista: %d ", tamanho_lista(li)); } @isrnick Sabe me dizer tambem? Ta complicado isso
  13. Valeu amigo, rapaz que codigo grande kkk E ele esta puxando outro arquivo, mas já pra ter uma boa base, valeu adicionado 31 minutos depois Então, agora estou na duvida se esta ou não mostrando os resultados de Lista Vazia ou Cheia, pois os dois mostram 0 #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 100 struct aluno { int matricula; char nome[30]; float n1, n2, n3; }; typedef struct lista { int qtd; struct aluno dados[MAX]; } Lista; Lista *cria_lista(); void libera_lista(Lista *li); int tamanho_lista(Lista *li); int lista_cheia(Lista *li); int lista_vazia(Lista *li); int insere_lista_final(Lista *li, struct aluno al); int insere_lista_inicio(Lista *li, struct aluno al); int insere_lista_ordenada(Lista *li, struct aluno al); int remove_lista_inicio(Lista *li); int remove_lista_final(Lista *li); int remove_lista(Lista *li, int mat); int main(void){ Lista *li; struct aluno al; al.matricula = 3; strcpy(al.nome, "Marcos"); al.n1 = 60; al.n2 = 50.0; al.n3 = 71.2; li = cria_lista(); insere_lista_inicio(li, al); int x = tamanho_lista(li); printf("Tamanho Lista: %d\n", x); if(lista_cheia(li)){ printf("Tamanho Lista: %d\n", lista_cheia(li)); } if(lista_vazia(li)){ printf("Lista Vazia!\n"); } printf("\n lista vazia? %d", lista_vazia(li)); printf("\n lista cheia? %d", lista_cheia(li)); remove_lista(li, 3); libera_lista(li); return 0; } Lista *cria_lista(void){ Lista *li; li = (Lista *)malloc(sizeof(Lista)); if(li != NULL){ li->qtd = 0; } return li; } void libera_lista(Lista *li){ free(li); } int insere_lista_inicio(Lista *li, struct aluno al){ if(li == NULL){ return 0; } if(lista_cheia(li)){ return 0; } for(int i = li->qtd-1; i>0; i--){ li->dados[i+1] = li->dados[i]; } li->dados[0] = al; li->qtd++; return 1; } int remove_lista(Lista *li, int mat){ if(li == NULL){ return 0; } if(li->qtd == 0){ return 0; } int k, i = 0; while(i < li->qtd && li->dados[i].matricula != mat){ i++; } if(i == li->qtd){ return 0; } for(k = i; k < li->qtd-1; k++){ li->dados[k] = li->dados[k+1]; } li->qtd--; return 1; } int tamanho_lista(Lista *li){ if(li == NULL){ return -1; }else{ return li->qtd; } } int lista_cheia(Lista *li){ if(li == NULL){ return -1; }else{ return (li->qtd == MAX); } } int lista_vazia(Lista *li){ if(li == NULL){ return -1; }else{ return (li->qtd == 0); } }
  14. Exato eu li o post que me mencionou e peguei um conteudo postado pelo professor. Vi que você tinha postado uma parte de inserir, mas olha como ficou: Inserir as funções que fica difícil, pode me ajudar? #include <stdlib.h> #include <stdio.h> #include <string.h> struct aluno { int matricula; char nome[100]; float n1, n2,n3; }; struct lista { int qtde; struct aluno a[3]; }; //cria a lista struct lista* cria_lista(){ struct lista *li; li=(struct lista *)malloc(sizeof(struct lista)); if(li != NULL) li->qtde = 0; return li; }; // verifica se a lista é vazia int lista_vazia(struct lista *li) { if(li != NULL) return (li->qtde ==0); else return -1; }; // verifica se a lista esta cheia int lista_cheia(struct lista *li) { if(li !=NULL) return (li->qtde == 3); else return -1; }; //verifica o tamanho da lista int recupera_tamanho_lista(struct lista *li) { if(li != NULL) return li->qtde; else return -1; }; int insere_no_fim_da_lista(struct lista *li, int matricula, char *nome){ if (!lista_cheia(li)){ li->a[li->qtde].matricula = matricula; strcpy(li->a[li->qtde].nome, nome); li->qtde++; return -1; } else { return 0; } } int main(void) { struct lista *li; li = cria_lista(); printf("\nLista vazia? %d ", lista_vazia(li)); printf("\nLista cheia? %d ", lista_cheia(li)); printf("\nTamanho da lista? %d ", recupera_tamanho_lista(li)); }
  15. Amigo me tira uma duvida, esse meu codigo esta de acordo com o solicitado? Eu li o post que você mencionou mas ainda assim estou na duvida se esta certo. #include <stdio.h> #include <stdlib.h> struct aluno{ int matricula; char nome[100]; float n1, n2, n3; }; typedef struct no No; struct no { int num; struct no *prox; } ; No* criar_no(){ No* no = (No*)malloc (sizeof(No)); return no; } inserir_fim(No* Lista, int dado){ No *no = criar_no(0); no->num = dado; if(Lista == NULL){ no->prox= NULL; Lista =no; } else{ No* aux =Lista; while(aux->prox != NULL){ aux=aux->prox; } no->prox= NULL; aux->prox = no; } } void imprimir(No* Lista){ No* aux = Lista; while(aux != NULL){ printf("%d", aux->num); aux=aux ->prox; } } int main(){ No* lista = NULL; lista=inserir_fim(lista, 5 ); lista=inserir_fim(lista, 8 ); imprimir(lista); return 0; }
  16. Cara quem passou isso foi o professor, eu estou postando aqui para saber como dar continuidade. Estou fazendo com outra pessoa que sabe programar um pouco mas nem ele sabe por onde ir, eu não sou programador e estou com dificuldades nessa materia devido a quarentena, pois não esta sendo ensinado praticamente nada. Mesmo pesquisando esta difícil, por isso estou pedindo um luz de como dar continuidade nesse codigo. Eu li o que postou mas algumas coisas não sei como fazer.
  17. #include <stdlib.h> #include <stdio.h> int main(){ struct aluno{ int matricula; char nome[100]; float n1,n2,n3; }; struct lista{ int qtde; struct aluno a[3]; }; struct lista* cria_lista() { struct lista *li; li = (struct lista *)malloc(sizeof(struct lista)); if(li != NULL){ li->qtde = 0; } return li; } // verificar se a lista é vazia int lista_vazia(struct lista *li){ if(li != NULL){ return (li->qtde == 0); } else{ return -1; } } // verificar se a lista esta cheia int lista_cheia(struct lista *li){ if(li != NULL){ return (li -> qtde == 3); } else { return - 1; } } struct li *li; li = cria_lista(); printf("\n lista vazia? %d", lista_vazia(li)); printf("\n lista cheia? %d", lista_cheia(li)); } //criar função de elemento que adiciona elemento ao final da lista Ja tinha postado o codigo, mas é esse ai de cima. O enunciado da questão é: Dado a estrutura básica para a construção de uma lista estática, pede-se que seja criada uma função responsável por inserir um elemento no final da lista. Essa função precisará receber como parâmetro a lista (ponteiro) e o elemento a ser inserido. Dentro da função main, será necessário chamar a função para inserir elemento ao final e, logo em seguida, mostrar o resultado da função que recupera o tamanho da lista. Ai tenho que dá continuidade nesse codigo como se pede a questão a cima. Preciso de uma luz pois estou perdido.
  18. Esse professor quebra as pernas pois o codigo dele parece ser diferente e dar continuidade nisso é complicado, ainda mais que não pude assistir a aula. Mas vou meter as caras aqui e tentar fazer, obrigado pela explicação. adicionado 1 minuto depois Pois é, eu preciso dar continuidade nesse codigo que postei, o seu que me passou esta perfeito, mas como não pude assistir o conteudo estou perdido. Mas vamos lá kkk
  19. Obrigado, ele esta pedindo para dar continuidade no codigo com a LISTA naquele codigo que postei. Vou ver o que consigo fazer
  20. Obrigado amigo, sabe me dizer se essa função recebe como parâmetro a lista (ponteiro) e o elemento a ser inserido? Obrigado! adicionado 22 minutos depois Outra coisa amigo, por que este código não executa na extensão em C? Pois esta como CPP
  21. Olá, Alguém poderia me ajudar a ter um caminho aqui, no dia em que foi dados o conteúdo minha avó faleceu e não pude aprender esse conteudo de "Listas" e estou bem perdido. Mesmo assistindo video aulas esta difícil absorver, se alguem puder me orientar ficaria grato. As imagens são somente exemplos do conteudo apresentado. Dado a estrutura básica para a construção de uma lista estática, pede-se que seja criada uma função responsável por inserir um elemento no final da lista. Essa função precisará receber como parâmetro a lista (ponteiro) e o elemento a ser inserido. Dentro da função main, será necessário chamar a função para inserir elemento ao final e, logo em seguida, mostrar o resultado da função que recupera o tamanho da lista. Este foi o codigo: #include <stdlib.h> #include <stdio.h> int main(){ struct aluno{ int matricula; char nome[100]; float n1,n2,n3; }; struct lista{ int qtde; struct aluno a[3]; }; struct lista* cria_lista() { struct lista *li; li = (struct lista *)malloc(sizeof(struct lista)); if(li != NULL){ li->qtde = 0; } return li; } // verificar se a lista é vazia int lista_vazia(struct lista *li){ if(li != NULL){ return (li->qtde == 0); } else{ return -1; } } // verificar se a lista esta cheia int lista_cheia(struct lista *li){ if(li != NULL){ return (li -> qtde == 3); } else { return - 1; } } struct li *li; li = cria_lista(); printf("\n lista vazia? %d", lista_vazia(li)); printf("\n lista cheia? %d", lista_cheia(li)); } //criar função de elemento que adiciona elemento ao final da lista

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!