-
Posts
8 -
Cadastrado em
-
Última visita
Reputação
4-
C Lista Circular por frequência de busca
Misto_Crente respondeu ao tópico de Misto_Crente em C/C#/C++
@Gabriel_Moro Obrigado! Ajudou muito ^-^ -
Olá gente, quando eu insiro um elemento, aparentemente da tudo certo. Porém quando eu insiro mais de um elemento, a função impressao_listaFREQ não imprime o resto dos elementos. Alguem poderia me ajudar? <#include <stdio.h> #include <stdlib.h> typedef int elem; typedef struct no { struct no *prox; struct no *ant; int info; } No_LFREQ; typedef struct { No_LFREQ *ini; No_LFREQ *fim; } ListaFREQ; void cria_listaFREQ(ListaFREQ *l); void destroi_listaFREQ(ListaFREQ *l); int esta_vazia_listaFREQ(ListaFREQ l); void insere_listaFREQ(ListaFREQ *l, elem x); int esta_na_listaFREQ(ListaFREQ *l, elem x); void impressao_listaFREQ(ListaFREQ l); int remover_listaFREQ(ListaFREQ *l, elem x); int main() { ListaFREQ l; cria_listaFREQ(&l); insere_listaFREQ(&l, 22); insere_listaFREQ(&l, 10); insere_listaFREQ(&l, 8); insere_listaFREQ(&l, 33); impressao_listaFREQ(l); return 0; } void cria_listaFREQ(ListaFREQ *l) { l->ini = NULL; l->fim = NULL; } void destroi_listaFREQ(ListaFREQ *l) { No_LFREQ *p; while (l->ini != l->fim) { p = l->ini; l->ini = l->ini->prox; free(p); } l->fim = NULL; } int esta_vazia_listaFREQ(ListaFREQ l) { return !l.ini ? 1 : 0; } void insere_listaFREQ(ListaFREQ *l, elem x) { No_LFREQ *p = malloc(sizeof(No_LFREQ)); p->info = x; p->prox = p->ant = p; if (l->ini == NULL) l->ini = l->fim = p; else { p->prox = l->ini; p->ant = l->ini->ant; l->ini->ant = p; } } int esta_na_listaFREQ(ListaFREQ *l, elem x) { No_LFREQ *aux_inicio = l->ini; No_LFREQ *aux = l->ini; No_LFREQ *aux2; do { if (l->ini->info == x) { if (aux_inicio->info != x) { aux2->info = aux->info; aux->info = aux->prox->info; aux->prox->info = aux2->info; } return 1; } aux = aux->prox; } while (l->ini != aux_inicio); return 0; } void impressao_listaFREQ(ListaFREQ l) { No_LFREQ *aux = l.ini; if(aux == NULL) return; printf("%d ", aux->info); aux = aux->prox; while (aux != l.ini) { printf("%d ", aux->info); aux = aux->prox; } printf("\n"); } int remover_listaFREQ(ListaFREQ *l, elem x) { No_LFREQ *p; No_LFREQ *aux; aux = l->ini; p = l->ini; if (l->ini->info == x) return 0; while (p != aux) { if (p->info == x) { p->prox = p->ant; p->ant = p->prox; free(p); return 0; } p = p->prox; } return 1; }>
-
Tranquilo, eu compreendo
-
O exercício é o seguinte: Implemente um programa que receba por parâmetro uma sequência de números inteiros e imprima o maior sub-conjunto desses números que forme um progressão aritmética. Exemplos ./longestAP 22 15 23 82 29 66 resultado: 15 22 29 ./longestAP 78 80 18 3 67 31 84 57 85 1 78 73 63 51 83 resultado: 18 51 84 ./longestAP 50 5 77 56 53 55 22 79 67 75 18 60 78 74 27 75 77 20 42 25 12 38 2 27 58 resultado: 2 20 38 56 74 ./longestAP 38 82 7 9 77 75 97 11 12 47 48 73 71 15 30 96 91 80 68 28 16 73 28 37 85 69 60 40 78 19 6 8 27 27 17 57 30 42 67 47 79 69 54 39 80 23 22 1 74 72 resultado: 7 17 27 37 47 57 67 77
-
@devair1010 Ok, vou tentar aqui. Muito obrigado ^^
-
Desenvolva um programa capaz de decompor um número inteiro N > 1 em números primos. A saída do seu programa deverá conter a lista de todos os primos componentes de N, seguidos por sua multiplicidade (quantidade de vezes que esse número aparece no produto). Cada par deve estar na mesma linha, separado por um espaço. Já os pares estarão separados por uma quebra de linha, como mostra o exemplo abaixo: Exemplo: Entrada: 50 Saída: 2 1 5 2 adicionado 0 minutos depois Preciso de ajuda urgente, é pra hoje.
-
Ah, entendi. Nas próximos dúvidas vou usar isso, e muito obrigado por ajudar @devair1010 ^^
-
Sou iniciante ainda, e o meu código só inverte até metade dos vetores e dai acaba voltando pra forma normal, alguem pode me dizer o que ta errado? #include <stdio.h> #include <stdlib.h> #include <math.h> #define MAX 20 int main() { int vet[MAX], i, j, aux; for (i = 0; i < MAX; i++){ scanf ("%d", &vet); } for (i = 0; i < MAX; i++) { j= MAX - i - 1; aux = vet[MAX]; vet = vet[j]; vet[j] = aux; printf("%i ", vet); } return 0; }
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais