- 
				Total de itens3237
- 
				Registro em
- 
				Última visita
- 
				Dias vencidos10
_Isis_ venceu o dia em Outubro 26 2017
Teve o conteúdo mais curtido
Reputação
202 Excelente 
										Sobre _Isis_

- Data de Nascimento 03/14/1985
Informações Pessoais
- 
											Sexo
											Feminino
- 
											Localização
											Curitiba
Últimos Visitantes
		
			10736005 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.
 
         
                 
                 
			 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	