Jump to content

_Isis_

Moderadores
  • Content count

    3237
  • Joined

  • Last visited

  • Days Won

    10

_Isis_ last won the day on October 26 2017

_Isis_ had the most liked content!

Community Reputation

202 Excelente

About _Isis_

  • Birthday 03/14/1985

Informações Pessoais

  • Sexo
    Feminino
  • Localização
    Curitiba

Recent Profile Visitors

10734008 profile views
  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. Muito provável porque a implementação não suporta o formatador.
  10. 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.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.