Ir ao conteúdo
  • Cadastre-se

viniciosbarbosa

Membro Pleno
  • Posts

    23
  • Cadastrado em

  • Última visita

Reputação

6
  1. ele so tem de inserir depois listar e remover mais usando esse tipo de estrutura de dados
  2. esse programa tinha que inserir 10 números e remover mais da erro de segmentação mais não sei onde #include<stdio.h> #include<stdlib.h> #define max 10 typedef struct no{ int dado; struct no *prox, *ant; }No; typedef struct lista{ int qtd; No *inicio; No *fim; }Lista; void inicializa(Lista *l){ l->qtd=0; l->fim=NULL; l->inicio=NULL; } int listavazia(Lista *l){ if(l->qtd==0){ return 0; } return 1; } No *buscap(Lista *l,int k){ No *nav; int i; if(k<l->qtd/2){ nav=l->inicio; for(i=0;i<=k;i++) nav=nav->prox; } else{ nav=l->fim; for(i=l->qtd-1;i>=k-1;i--){ nav=nav->ant; } } return nav; } int inserirlistavazia(Lista *l, int valor){ No *novo=malloc(sizeof(No)); novo->dado=valor; l->fim=novo; novo->prox=NULL; novo->ant=NULL; l->qtd++; return l->qtd; } int inseririnicio(Lista *l,int valor){ No *novo=malloc(sizeof(No)); novo->dado=valor; novo->prox=l->inicio; l->inicio->ant=novo; novo->ant=NULL; l->inicio=novo; l->qtd++; return l->qtd; } int inserirfim(Lista *l,int valor){ No *novo=malloc(sizeof(No)); novo->dado=valor; l->fim->prox=novo; novo->ant=l->fim; novo->prox=NULL; l->fim=novo; l->qtd++; return l->qtd; } int remova_um(Lista *l){ int aux=l->inicio->dado; free(l->inicio); l->inicio=NULL; l->fim=NULL; l->qtd--; return aux; } int inserirp(Lista *l,int valor,int k){ if(k<0 || k>l->qtd){ printf("posiçao invalida\n"); return -1; } if(l->qtd==0){ inserirlistavazia(l,valor); return l->qtd; } if(k==0){ inseririnicio(l,valor); return l->qtd; } if(k==l->qtd){ inserirfim(l,valor); return l->qtd; } No*novo=malloc(sizeof(No)); novo->dado=valor; No *nav=buscap(l,k-1); novo->prox=nav->prox; novo->ant=nav; nav->prox->ant=novo; return++l->qtd; } int removerinicio(Lista *l){ if(l->qtd==0){ printf("lista vazia"); return -1; } if(l->qtd==1){ return remova_um(l); } int aux=l->inicio->dado; No *lixo=l->inicio; lixo->prox->ant=NULL; l->inicio=lixo->prox; free(lixo); lixo=NULL; l->qtd--; return aux; } int removerfim(Lista *l){ if(l->qtd==0) return -1; if(l->qtd==1){ return remova_um(l); } int aux=l->fim->dado; No *lixo=l->fim; lixo->ant->prox=NULL; l->fim==lixo->ant; free(lixo); lixo=NULL; l->qtd--; return aux; } int removerp(Lista *l,int k){ if(l->qtd==0){ return -1; } if(k<0 || k>l->qtd){ printf("posiçao invalida"); return -1; } if(k==0){ return removerinicio(l); } if(k==l->qtd-1){ return removerfim(l); } No *lixo=buscap(l,k); lixo->ant->prox=lixo->prox; lixo->prox->ant=lixo->ant; int aux=lixo->dado; free(lixo); lixo=NULL; l->qtd--; return aux; } int main(){ int i; Lista l; inicializa(&l); for(i=0;i<10;i++){ printf("%d\n",inserirp(&l,i*5,i)); } for(i=0;i<10;i++){ printf("%d\n",removerp(&l,0)); } return 0; }
  3. @vangodp muito obrigado por sua ajuda, mais percebi que colocou %s para a leitura de inteiro. Bom meu compilador não reconheceu mais eu também tinha errado, era um valor flutuante. Pois bem meu código ficou desta forma eu tinha que ler o numero de ida a um supermercado/feira por exemplo, e depois ler o numero de produtos de estoque, depois em um loop eu ia pegar o nome e o valor, depois de pegar todos eu pego o numero de itens que ela comprou, depois disso o usuário informa o nome do produto e a quantidade comprada depois computa e no fim mostra o valor das idas ao supermercado/feira. OBS: para onde eu precisava do código não poderia existir printfs a não ser o da saída. meu codigo; #include<stdio.h> #include<math.h> #include<string.h> #include<stdlib.h> typedef struct{ char produto[50]; float preco; }f; typedef struct{ char item[50]; int quantidade; }c; int main() { int n,i,j,k,g,m; float veto[1000]; //quantidade de loop scanf("%d",&n); for(i=0;i<n;i++) { int qtdp; scanf("%d",&qtdp); f lista[qtdp]; for(m=0;m<qtdp;m++){ //printf("Informe o nome: "); scanf("%s",lista[m].produto); //printf("valor: "); scanf("%f",&lista[m].preco); } int qtdc; scanf("%d",&qtdc); c compra[qtdc]; for(j=0;j<qtdc;j++){ //printf("Informe o nome: "); scanf("%s",compra[j].item); //printf("valor: "); scanf("%d",&compra[j].quantidade); } float vet[qtdc]; int res; for(k=0;k<qtdc;k++){ for(g=0;g<qtdp;g++){ //comparaçao de elemento res=strcmp(compra[k].item,lista[g].produto); //se 0 sao igual //se nao fazer nada if(res==0){ vet[i]=vet[i]+compra[k].quantidade*lista[g].preco; } } } //passagem de vetor pra fora do loop; veto[i]=vet[i]; } for(j=0;j<n;j++){ printf("R$ %.2f\n",veto[j]); } return 0; }
  4. #include<stdio.h> #include<math.h> #include<string.h> #include<stdlib.h> typedef struct{ char produto[50]; float preco; }f; int main() { f feira; int n,i,j,k; scanf("%d",&n); for(i=0;i<n;i++) { int qtdp; scanf("%d",&qtdp); f vet[qtdp]; for(j=0;j<qtdp;j++){ printf("informe o produto\n"); scanf("%s %f",feira.produto,&feira.preco); vet[i]=feira; } for(j=0;j<qtdp;j++){ printf("%s %f\n",vet[j].produto,vet[j].preco); } } return 0; } adicionado 2 minutos depois @vangodp so esta salvando o ultimo o resto se perde.
  5. tenho uma duvida de como fazer a leitura de uma string minha leitura scanf(" %s %f",produtoc,&qtd); tenho que ler uma string com nome e um float separado por um espaço; ate então normal lê mais quando vou imprimir só esta saindo a ultima string lida e o resto nada; minha saida
  6. pessoal tenho uma duvida na ordenação tenho que ordenar do mais novo para o mais velho tudo importa dia mês e ano de nascimento mais não sei como proceder ao final do programa tenho que imprimir a matricula dos alunos; meu código ate agora a entrada seria essa 5 12345 12 07 1978 erick 23489 11 03 2009 joao 98762 05 12 1976 maria 34561 11 07 1978 roberto 34599 07 05 1976 ricardo e a saida seria matricula 23489 matricula 12345 matricula 34561 matricula 98762 matricula 34599 mas esta dando um valor diferente #include<stdio.h> #include<string.h> typedef struct{ int matricula; int dia; int mes; int ano; char nome[200]; }aln; int main(){ int n,i; scanf("%d",&n); aln aluno; aln vet[n]; for(i=0;i<n;i++){ scanf("%d %d %d %d %s",&aluno.matricula,&aluno.dia,&aluno.mes,&aluno.ano,aluno.nome); vet[i]=aluno; } int veto[n]; for(i=0;i<n;i++){ veto[i]=vet[i].matricula; } int temp; int j; for(i=0;i<n;i++) for(j=i+1;j<n;j++) if(vet[i].ano>=vet[j].ano&&vet[i].dia>=vet[j].dia &&vet[i].mes>=vet[j].mes ){ temp=veto[i]; veto[i]=veto[j]; veto[j]=temp; } for(j=0;j<n;j++){ printf("matricula %d\n",veto[j]); } return 0; }
  7. meu printf no caso 1 só esta parando depois da segunda virgula e quero que pare na primeira virgula quero tipo em forma monetária só com 2 números depois da virgula mas esta saindo um numero muito grande. #include<stdio.h> int main(){ float invés,res,resu; int op; scanf("%f",&invés); scanf("%d",&op); switch(op){ case 1: resu=invés*3/100; res=resu+invés; printf("%.2f",res); case 2: resu=invés*4/100; res=resu+invés; printf("%.2f",res); } return 0; }
  8. @Lucas Matheus Pereira mas a energia e da tomada direto ou tem algum estabilizador um similar?
  9. pode ser super aquecimento tenta limpar o duto de ar que sai o ar quente pode ter muita poeira e ta aquecendo ate certo ponto e o processador desligando por segurança ,verifica também se se ele esta com o cooler funcionando.
  10. @Lucas Matheus Pereira Tenta desligar ele da tomada um pouco ate ele meio que descarregar se não resolver seu PC queimou. Tipo enfia o cabo e ve se ele esta bem conectado .
  11. Qual a melhor distribuição linux para programação estou fazendo ciência da computação e no laboratório uso o ubuntu mas gostaria de levar um notebook para a faculdade por causa de segurança e também e bem mais fácil de salvar as coisas mais não sei qual linux instalar no meu notebook?
  12. @Anderson Silva Freitas Bom isso porque e uma internet muito lenta e cada um vai puxar uma porta do roteador, mais uma coisa que e mais aceitável e que outras pessoas pode estar usando a internet como vizinhos isso e uma coisa que acontece , tente falar com seu chefe sobre depois do expediente desligar todos os dispositivos wi-fi e ver quantos ainda estão conectados isso pode ate acarretar em problemas de segurança se não for resolvido.
  13. @Matheus Rogério vale muito , mas suas configurações de PC podem dizer outra coisa como um upgrade mais hard.
  14. Bom pode ser um bug de versão acontece muito com beta tente limpar os dados do app, verificar se esta conectado a internet verificar ate o modem conexão velocidade de internet ou teste um emulador de android mas e muito difícil que seja seu celular agora sobre o Feed você esta falando do seu celular ou no celular dos outros se for no seu atualize seu Feed passando o dedo de cima para baixo ele ira atualizar.

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...