Ir ao conteúdo
  • Cadastre-se

Adao Henrique

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

0
  1. Bom, estou com um erro que não consigo identificar a causa dele. Se alguém poder me ajudar eu agradeço. Eis o código. #include <stdio.h> #include <stdlib.h> #include "lista_ligadah.h" int main(){ Lista *lista; int valor, i, numero_de_celulas; lista= criar_lista_vazia; scanf("%d%d", &valor, &numero_de_celulas); for(i=0; i<numero_de_celulas; i++){ inserir_valor(&lista, valor); //o erro está nesta linha. valor= valor+2; //está linha é simplesmente para que a lista não tenha todos os termos de mesmo valor. } return 0; } Agora o arquivo lista_ligadah.c (eles estão em arquivos diferentes, lista_ligadah é a biblioteca que criei) #include <stdio.h> #include <stdlib.h> #include "lista_ligadah.h" void inserir_valor(Lista **inicio, int valor){ Lista *celula = malloc( sizeof ( Lista )); celula->conteudo= valor; celula->prox= *inicio; *inicio= celula; } Lista é o tipo de dado que criei. typedef struct lista{ int conteudo; struct lista *prox; } Lista; o arquivo .h está correto, então achei melhor não coloca-lo, juntamente com a função criar_lista_vazia para não sobrecarregar a leitura. o algoritmo cria uma lista ligada com a função criar_lista_vazia, e depois preenche com n termos (numero_de_celulas), uso o codeblocks 13.12 no ubuntu 16.04. este é o erro: main.c|14|referência indefinida para `inserir_valor'|
  2. Meu professor pediu que criarmos um menu, e o usuario escolheria uma opção que lhe dizia que o numero fornecido pelo usuario era primo, triangular... No entanto assim que executo o código ele entra em um loop infinito. o que está errado nele??? Só poso usar essar estrururas. #include<stdio.h> #include<math.h> int primo(int p){ int i,r=0; for(i=2;i<p;i++){ if(p%i==0){ r=1; break; } } return r; } int perfeito(int pe){ int total=0,c=1, r=1; while(c<pe){ if (pe%c==0){ total= total+c ; c++; } if(pe==total) r=0; return r; } } int triangular(int t){ int i, c, r=1; for (c=0;c<=i;c++){ if(c*(c+1)*(c+2)==i) r=0; return r; } } int abundante(int a){ int soma=0, c, r=1; for(c=1;c<a;c++){ if (a%c==0) soma+= c; if(soma>a) r=0; return r; } } int main(){ int n, i,c=1,j, k, l, numero; printf("\n1-Declarar um valor.\n"); printf("2-Conferi se é primo.\n"); printf("3-Conferi se é perfeito.\n"); printf("4-Conferi se é triangular.\n"); printf("5-Confere se é abundante.\n"); printf("6-Sair"); while(c!=6){ switch(numero){ case 1: printf("Digite um valor:"); scanf("%d", &n); break; case 2: k= primo(n); if (k==0) printf("0"); else printf("1"); break; case 3: j=perfeito(n); if (j==0) printf("0"); else printf("1"); break; case 4: i=triangular(n); if(i==0) printf("0"); else printf("1"); break; case 5: l=abundante(n); if (l==0) printf("0"); else printf("1"); break; case 6: c=6; break; default: printf("Opcao invalida"); break; } } }

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

×
×
  • Criar novo...