Pesquisar na Comunidade
Mostrando resultados para as tags ''blocks''.
Encontrado 2 registros
-
Bom dia, galera estou tentando ordenar os elementos de uma lista duplamente encadeada, porem sempre da erro, poderiam me dizer oque esta errado e como corrigir a função, função estará em destaque. Segue o código: #include <stdio.h> #include<stdlib.h> typedef struct no * link; struct no{ int conteudo; link next; link prev; }; link criarLista(); int listaVazia(link l); void imprimeLista(link l); link buscaElemento(link l, int val); void liberaLista(link l); link inserirElementos(link l, int val); link maiorNo(link l); link ordenar(link l); int main(){ link inicio = criarLista(); int i, valor; //Inserir valores e imprimir for(i = 0; i < 5; i++){ printf("\nDigite um valor para a lista: "); scanf("%d", &valor); inicio = inserirElementos(inicio, valor); } printf("Lista inicial: \n"); imprimeLista(inicio); //Buscar maior elemento link aux = maiorNo(inicio); printf("\nO maior elemento da lista e: %d\n", aux->conteudo); //Ordenar lista inicio = ordenar(inicio); printf("\nLista ordenada: \n"); imprimeLista(inicio); return 0; } link criarLista(){ return NULL; } int listaVazia(link l){ return (l == NULL); } void imprimeLista(link l){ link p = l; if(listaVazia(l)){ printf("Lista vazia!\n"); } else{ while(p != NULL){ printf("%d\t", p->conteudo); p = p->next; } } } link buscaElemento(link l, int val){ link p = l; if(listaVazia(l)){ printf("Lista Vazia!\n"); } else{ while(p != NULL){ if(p->conteudo == val){ return p; } p = p->next; } } return NULL; } void liberaLista(link l){ link p = l; while (p != NULL){ link t = p->next; free(p); p = t; } free(l); } link inserirElementos(link l, int val){ link novo = (link)malloc(sizeof(struct no)); novo->conteudo = val; novo->next = l; novo-> prev = NULL; if(l != NULL) l->prev = novo; return novo; } //Interativa link maiorNo(link l){ link p = l; link maior = (link)malloc(sizeof(struct no)); maior->conteudo = l->conteudo; for(p = l; p != NULL; p = p->next){ if(maior->conteudo < p->conteudo){ maior = p; } } return maior; } link ordenar(link l){ link p; link q; for(p = l; p != NULL; p = p->next){ for(q = l; q != NULL; q->next){ if(p->conteudo < q->conteudo){ p->conteudo = q->conteudo; } } } return p; }
-
Boa tarde pessoal, recentemente migrei para o ubunto 14.04LTS, e instalei o CodeBlocks para aproveitar meu tempo livre e programar um pouco, tive uma ideia de fazer um programinha de cadastramento de alunos, porém meu código quando chega em uma parte retorna um erro "Segmentation Fault(Core Dumped)", Esse problema está no meu código ou na própria IDE ? Quando passo o debugger me retorna o seguinte : warning: GDB: Failed to set controlling terminal: Operação não permitida E continua o programa, vou postar o código até a parte em que ocorre o bug. #include <stdio.h> #include <stdlib.h> #include <strings.h> #include <ctype.h> #define SIZE 200 char nome[SIZE][50]; char nomeResponsavel[SIZE][50]; long long numeroTel[SIZE]; int cpf[SIZE]; int RA[SIZE]; int op; void cadastro(); void pesquisar(); int main() { cadastro(); pesquisar(); } void cadastro() { static int linha; do{ printf("\t\t\t\t\tCADASTRO DE NUMERO %d\n",linha); printf("Digite o nome do aluno : "); scanf("%[a-z A-Z]s",nome[linha]); setbuf(stdin, NULL); printf("Digite o nome do Respons%cvel : ",160); scanf("%[a-z A-Z]s",nomeResponsavel[linha]); setbuf(stdin, NULL); printf("Digite o Telefone: "); scanf("%lld",numeroTel[linha]); //Onde segundo o debugger ocorre o erro. setbuf(stdin, NULL);