viniciosbarbosa
Membro Pleno-
Posts
23 -
Cadastrado em
-
Última visita
Reputação
6-
C lista duplamente encadeada erro de segmentação
viniciosbarbosa respondeu ao tópico de viniciosbarbosa em C/C#/C++
ele so tem de inserir depois listar e remover mais usando esse tipo de estrutura de dados -
C lista duplamente encadeada erro de segmentação
viniciosbarbosa respondeu ao tópico de viniciosbarbosa em C/C#/C++
-
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; }
-
C leitura de string e um valor flutuante
viniciosbarbosa respondeu ao tópico de viniciosbarbosa em C/C#/C++
@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; } -
C leitura de string e um valor flutuante
viniciosbarbosa respondeu ao tópico de viniciosbarbosa em C/C#/C++
#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. -
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
-
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; }
-
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; }
-
Luz da internet acende mais computador não liga
viniciosbarbosa respondeu ao tópico de Lucas Matheus Pereira em Placas-mãe
@Lucas Matheus Pereira mas a energia e da tomada direto ou tem algum estabilizador um similar? -
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.
-
Luz da internet acende mais computador não liga
viniciosbarbosa respondeu ao tópico de Lucas Matheus Pereira em Placas-mãe
@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 . -
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?
-
@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.
-
Vale a pena trocar placa de vídeo?
viniciosbarbosa respondeu ao tópico de Matheus Rogério em Placas de vídeo
@Matheus Rogério vale muito , mas suas configurações de PC podem dizer outra coisa como um upgrade mais hard. -
Instagran não carrega as fotos no feed
viniciosbarbosa respondeu ao tópico de Dáfnis Macédon em Redes e Internet
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