-
Total de itens
3237 -
Registro em
-
Última visita
-
Dias vencidos
10
_Isis_ venceu o dia em Outubro 26 2017
Teve o conteúdo mais curtido
Reputação
202 ExcelenteSobre _Isis_
- Data de Nascimento 03/14/1985
Informações Pessoais
-
Sexo
Feminino
-
Localização
Curitiba
Últimos Visitantes
10735715 visualizações
-
mathildebuxton começou a seguir _Isis_
-
baixinha713 começou a seguir _Isis_
-
Sempre Linux começou a seguir _Isis_
-
Silva Mateus começou a seguir _Isis_
-
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/
-
Lista simplesmente encadeada tendo como argumento outra estrutura com dados
_Isis_ respondeu ao tópico de Fah em C/C++
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; }- 2 respostas
-
- simples
- lista encadeada
-
(e mais 1 )
Tags:
-
https://pt.wikipedia.org/wiki/Algoritmo
-
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.
-
você precisa ser do arquivo,alterar em memória e gravar antes de sair do programa. http://en.cppreference.com/w/c
-
Coloque o scanf e faça os ifs.
-
você aloca o próximo nó e atribui à variável próximo do nó anterior.
-
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.
-
Como adicionar pontuação em número inteiro usando sprintf
_Isis_ respondeu ao tópico de carolOL em C/C++
Muito provável porque a implementação não suporta o formatador. -
Como adicionar pontuação em número inteiro usando sprintf
_Isis_ respondeu ao tópico de carolOL em C/C++
LC_NUMERIC = pt_BR -
Como adicionar pontuação em número inteiro usando sprintf
_Isis_ respondeu ao tópico de carolOL em C/C++
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 -
Vá no google. https://en.wikipedia.org/wiki/Determination_of_the_day_of_the_week
-
ElsonAnjos começou a seguir _Isis_
-
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.
- 4 respostas
-
O que você já fez?
- 4 respostas
-
você usa duas variáveis.