Ir para conteúdo

_Isis_

Moderadores
  • Total de itens

    3237
  • Registro em

  • Última visita

  • Dias vencidos

    10

Tudo que _Isis_ postou

  1. _Isis_

    Preciso de Ajuda - Shift-and

    http://www.cs.uku.fi/~kilpelai/BSA05/lectures/print05.pdf http://codinghighway.com/2014/10/13/a-quick-and-efficient-string-matcher-the-shift-and-method/
  2. Dica: ao invés de dizer que está dando erro, seria mais interessante dizer qual erro está dando. Muita coisa é sintaxe incorreta. Antes de sair acessando e atribuindo coisas a ponteiros você faz bem em verificar se o retorno do malloc não é NULL. Faz muito tempo que não mexo com C, então compila isso com os warnings ligados. #include<stdio.h> #include<stdlib.h> #include<errno.h> #include<string.h> #define MAXNOME 100 struct aluno{ int matricula; char nome[MAXNOME]; float media; }; typedef struct aluno Aluno; struct no{ Aluno* dados; struct no* prox; }; typedef struct no No; No* criar_lista(){ No* tmp = (No*) malloc(sizeof(No)); if (tmp == NULL) { printf("%s\n", strerror(errno)); exit(1); } tmp->dados = NULL; tmp->prox = NULL; return tmp; } Aluno* criar_aluno() { Aluno* no_aluno = (Aluno*) malloc(sizeof(Aluno)); if (no_aluno == NULL) { printf("%s\n", strerror(errno)); exit(1); } return no_aluno; } Aluno* ler_aluno() { Aluno* no_aluno = criar_aluno(); printf("Informe a matrícula:"); scanf("%d%*c", &(no_aluno->matricula)); printf("Informe o nome:"); fgets(no_aluno->nome, 100, stdin); (*strrchr(no_aluno->nome, '\n')) = '\0'; printf("Informe a média:"); scanf("%f", &(no_aluno->media)); return no_aluno; } No* inserir_ordenado(No* lista_alunos, Aluno* aluno) { if(lista_alunos == NULL) { return -1; } int posicao = 0; No* elemento = lista_alunos; No* anterior = NULL; if (elemento->dados == NULL && elemento->prox == NULL) { lista_alunos->dados = aluno; } else { while (elemento != NULL && elemento->dados->matricula < aluno->matricula) { anterior = elemento; elemento = elemento->prox; } No * tmp = (No*) malloc(sizeof(No)); if (tmp == NULL) { printf("%s",strerror(errno)); free(lista_alunos); free(aluno); exit(1); } tmp->dados = aluno; if (anterior == NULL) { tmp->prox = lista_alunos; return tmp; } else { if (elemento == NULL) { tmp->prox = NULL; anterior->prox = tmp; } else { tmp->prox = elemento; anterior->prox = tmp; } } } return lista_alunos; } void imprimir(const No* lista_alunos) { No* tmp = lista_alunos; while(tmp != NULL) { if (tmp->dados != NULL) { printf("Nome:%s\tMatrícula:%d\tMédia:%.2f\n", tmp->dados->nome, tmp->dados->matricula, tmp->dados->media); } tmp = tmp->prox; } } void desalocar(No* l) { if (l->prox == NULL) { free(l); return; } else { desalocar(l->prox); free(l); } } int main(){ No* lista_alunos = criar_lista(); imprimir(lista_alunos); Aluno * aluno; for(int i =0 ; i<5; i++) { aluno = ler_aluno(); lista_alunos = inserir_ordenado(lista_alunos, aluno); } imprimir(lista_alunos); free(aluno); desalocar(lista_alunos); return 0; }
  3. _Isis_

    Alguém consegue entender esse enunciado ?

    https://pt.wikipedia.org/wiki/Algoritmo
  4. _Isis_

    Modificar linha em FILE txt (C)

    você não entendeu. Leia o arquivo inteiro em memória no início do programa. Todas as operações de aluguel são feitas em memória primeiro e só depois você escreve em arquivo *tudo* o que está em memória sobrescrevendo o conteúdo do arquivo. Também dá pra mapear o arquivo em memória, mas é mais complicado: https://en.wikipedia.org/wiki/Memory-mapped_file https://stackoverflow.com/questions/8411709/memory-mapped-files https://www.gnu.org/software/libc/manual/html_node/Memory_002dmapped-I_002fO.html Se você estiver usando um ambiente específico, tipo POSIX, dá pra tentar criar toda a lista de carros em memória + a informação das linhas no arquivo lendo linha por linha e processando os dados usando expressão regular.
  5. _Isis_

    Modificar linha em FILE txt (C)

    você precisa ser do arquivo,alterar em memória e gravar antes de sair do programa. http://en.cppreference.com/w/c
  6. _Isis_

    Geração de descontos C++

    Coloque o scanf e faça os ifs.
  7. _Isis_

    Como fazer uma lista?

    você aloca o próximo nó e atribui à variável próximo do nó anterior.
  8. _Isis_

    Agenda de compromissos em C

    Use define (ou enum) p/ não ficar aparecendo uns números mágioos no switch-case. Só lembre de não usar fflush na entrada padrão.
  9. _Isis_

    Como adicionar pontuação em número inteiro usando sprintf

    Muito provável porque a implementação não suporta o formatador.
  10. _Isis_

    Como adicionar pontuação em número inteiro usando sprintf

    Acredito que usar locale.h é mais fácil. http://en.cppreference.com/w/c/locale/setlocale https://msdn.microsoft.com/en-us/library/ftyz68a0.aspx
  11. _Isis_

    Linguagem C - semana/dia

    Vá no google. https://en.wikipedia.org/wiki/Determination_of_the_day_of_the_week
  12. _Isis_

    Ajuda em fila e pilha - linguagem c

    você conta os elementos de cada pilha separadamente e retorna o maior valor. Na segunda questão você sempre vai retirar o primeiro elemento da fila e adicionar ao final da outra.
  13. _Isis_

    Ajuda em fila e pilha - linguagem c

    O que você já fez?
  14. _Isis_

    Guarda de dados

    você usa duas variáveis.
  15. _Isis_

    Guarda de dados

    Use uma atribuição
  16. _Isis_

    Como avisar para o usuário que ele já jogou o mesmo número

    Crie uma lista com as jogadas não repetidas já feitas e a cada nova jogada procure se o número está lá.
  17. _Isis_

    PROBLEMAS EM LINGUAGEM C

    Qual a dificuldade de fazer o produto do primeiro exercício?
  18. _Isis_

    PROBLEMAS EM LINGUAGEM C

    E cadê o código?
  19. _Isis_

    PROBLEMA DE UM TRABALHO

    Qual a dificuldade em criar as matrizes e fazer as funções pedidas?
  20. _Isis_

    Arvore Binaria de Busca

    O que você já fez?
  21. _Isis_

    Execício em C

    Usando float ou double.
  22. _Isis_

    Execício em C

    A divisão entre o número de faltas e o número de aulas vai ser inteira, não float. Ex: 4 faltas / 20 aulas = 0 ao invés de 0.2 Se atente p/ os tipos das variáveis.
  23. _Isis_

    Estrutura de dados, C++/C

    T1 e T2 indicarão o topo da pilha, provavelmente. Se são de base oposta, T1 = 0 e T2 = N. você vai usar um único vetor p/ implementar duas pilhas e vai ter que controlar o tamanho delas (p/ não ter sobreposição) com T1 e T2.
  24. Você poderia criar um conjunto de posições proibidas e consultar quando o usuário informasse ou verificar direto na matriz se existe uma célula preenchida adjacente.
×

Informação importante

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