Ir ao conteúdo

Igor Vargas

Membro Pleno
  • Posts

    173
  • Cadastrado em

  • Última visita

Tudo que Igor Vargas postou

  1. Eu fiz uma entrevista recentemente e me deparei com a seguinte questão. O desafio era trazer todos os employes que tivessem nomes diferentes. A resposta é A,B,C. Mas fiquei preso na hora de percorrer cada um e comparar com o proximo. Como voce resolveria essa questão const lojas = [ { status: "open", employes: ["a", "b"], }, { status: "open", employes: ["c", "b"], }, { status: "closed", employes: ["d", "b"], }, { status: "open", employes: ["c", "b"], }, ];
  2. @AdrianoSiqueira mudei, mas não adiantou. não sei como resolver isso.
  3. @AdrianoSiqueira sim. Tu pode escolher java 14 ou 8 também estou usando
  4. @AdrianoSiqueira Eu acho que ele só lê se for daquela forma mais como algoritmo mesmo
  5. consegui resolver. Mas mesmo dando a resposta certa o site diz que está errado. O código ficou assim package teste; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Random; import java.util.Scanner; public class teste2 { public static final Random RANDOM = new Random(); public static void main(String[] args) { Scanner num = new Scanner(System.in); int quantidade = num.nextInt(); for (int i = 0; i < quantidade; i++) { Cidade cidade = Cidade.gerar(quantidade); cidade.residencias.sort(Comparator.comparingInt(o -> o.consumo)); System.out.println("Cidade# " + (i + 1)); String p1 = "Consumo medio:"; String p2 = "m3."; System.out.println(cidade.residencias.toString().replace("[", "").replace("]","").replace(",", "")); System.out.printf("%s %.2f %s\n",p1, cidade.calcularConsumoPorHabitante(), p2); if (i + 1 < quantidade) { System.out.println(); } } } private static class Residencia { public int moradores; public int consumo; public int media; public Residencia() { } public static Residencia gerar() { Scanner num = new Scanner(System.in); Residencia residencia = new Residencia(); residencia.moradores = num.nextInt(); // [ 1 - 10 ] residencia.consumo = num.nextInt(); // [ 0 - 200] residencia.media = residencia.consumo / residencia.moradores; return residencia; } @Override public String toString() { return moradores + "-" + media; } } private static class Cidade { public List<Residencia> residencias = new ArrayList<>(); public static Cidade gerar(int qtd) { Scanner num = new Scanner(System.in); int quantidade = qtd; // [ 1 - 20 ] Cidade cidade = new Cidade(); for (int i = 0; i < quantidade; i++) { Residencia residencia = Residencia.gerar(); cidade.residencias.add(residencia); } return cidade; } public double calcularConsumoPorHabitante() { int habitantes=0; double consumo=0.0; for (Residencia residencia : residencias) { habitantes += residencia.moradores; consumo += residencia.consumo; } return (habitantes != 0) ? consumo / habitantes : 0.0; } } }
  6. @AdrianoSiqueira Eu não entendi como é feito esse calculo.
  7. @AdrianoSiqueira Aqui também, mas o resultado não sai igual aquele do site.
  8. @AdrianoSiqueira Tu chegou a testar o código que eu passei?. Então o resultado era pra ser aquele, mas o código esta trazendo outro
  9. @AdrianoSiqueira Sim, entendi. Quando eu testo os seguintes numeros ele retorna errado. codigo abaixo. package teste; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.Random; import java.util.Scanner; public class teste2 { public static final Random RANDOM = new Random(); public static void main(String[] args) { Scanner num = new Scanner(System.in); int quantidade = num.nextInt(); for (int i = 0; i < quantidade; i++) { Cidade cidade = Cidade.gerar(quantidade); cidade.residencias.sort(Comparator.comparingInt(o -> o.consumo)); System.out.println("Cidade #" + (i + 1)); String p1 = "Consumo medio:"; String p2 = "m3."; System.out.println(cidade.residencias.toString().replace("[", "").replace("]","").replace(",", "")); System.out.printf("%s %.2f %s\n",p1, cidade.calcularConsumoPorHabitante(), p2); if (i + 1 < quantidade) { System.out.println(); } } } /** * Classe de modelagem de uma residência. */ private static class Residencia { public int moradores; public int consumo; public Residencia() { } /** * Gera uma {@link Residencia} com quantidades aleatórias de moradores * e de consumo. * * @return Uma instância de {@link Residencia}. */ public static Residencia gerar() { Scanner num = new Scanner(System.in); Residencia residencia = new Residencia(); residencia.moradores = num.nextInt(); // [ 1 - 10 ] residencia.consumo = num.nextInt(); // [ 0 - 200] return residencia; } @Override public String toString() { return moradores + "-" + consumo; } } /** * Classe de modelagem de uma cidade. */ private static class Cidade { public List<Residencia> residencias = new ArrayList<>(); /** * Gera uma {@link Cidade} com quantidade aleatória de {@link Residencia}s. * * @return Uma instância de {@link Cidade}. */ public static Cidade gerar(int qtd) { Scanner num = new Scanner(System.in); int quantidade = qtd; // [ 1 - 20 ] Cidade cidade = new Cidade(); for (int i = 0; i < quantidade; i++) { Residencia residencia = Residencia.gerar(); cidade.residencias.add(residencia); } return cidade; } /** * Calcula o consumo de médio por habitante. Esse método divide o consumo * total de todas as residências pelo total de habitantes de todas as * residências. * * @return Consumo médio por habitante. */ public double calcularConsumoPorHabitante() { int habitantes = 0; double consumo = 0.0; for (Residencia residencia : residencias) { habitantes += residencia.moradores; consumo += residencia.consumo; } return (habitantes != 0) ? consumo / habitantes : 0.0; } } }
  10. @AdrianoSiqueira Tentei adaptar mas não consegui. Fiquei meio confuso de como passar um parâmetro da quantidade de moradores para uma residencial. por exemplo se eu colocar 3 teria que ser repetido o processo mais duas vezes.
  11. @AdrianoSiqueira o problema é o seguinte
  12. @AdrianoSiqueira no site da URI aparece esse erro
  13. @AdrianoSiqueira Mas no caso do site URI ele testa esses valores
  14. Aparece o seguinte erro
  15. Estou com um problema no seguinte código. Estou fazendo o desafio 1023 na URI e o meu código esta retornando Runtime Error. Mas não estou encontrando o problema. import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner ler = new Scanner (System.in); int num; int i,n1,n2,j=1; int[] contas; int[] refs; for(;;){ num = ler.nextInt(); if(num==0){ break; }else{ System.out.print("\n\n"); } contas = new int[num]; refs = new int[200]; int sumP=0,sumA=0; float mediaF=0; int mediaP=0; for(i=0;i<num;i++){ n1=ler.nextInt(); n2=ler.nextInt(); sumP+=n1; sumA+=n2; mediaP=sumA*100/sumP; mediaF=(float)mediaP/100; contas[i]=n2/n1; refs[contas[i]]+=n1; } Arrays.sort(contas); System.out.print("Cidade# "+j+":\n"); for(i=0;i<num;i++){ System.out.print(refs[contas[i]]+"-"+contas[i]+" "); if(i+1<num && contas[i]==contas[i+1]){ i++; } } System.out.printf("\nConsumo medio: %.2f m3.",mediaF); j++; } } }
  16. Olá, estou participando de um desafio no site URI, e ele fica me retornando um erro de runtime. Testei em outros emuladores e funciona normalmente. Qual pode ser o erro?. O desafio é validar um cpf. import java.util.Scanner; class Main { static void cpf(){ Scanner tec = new Scanner(System.in); while(true){ String cpf = tec.nextLine(); int [] vet = new int [9]; int x = 0; int dg1 = 0; int dg2 = 0; if(cpf.length() > 14) break; for(int i = 0;i<11;i++){ if(cpf.charAt(i) == '.' || cpf.charAt(i) == '-'){ }else{ vet[x] = Character.getNumericValue(cpf.charAt(i)); x++; } } x = 0; int j = 9; for(int i = 1;i<=9;i++,j--){ dg1 += (vet[x] * i); dg2 += (vet[x] * j); x++; } if((dg1%11) == 10){ dg1 = 0; }else{ dg1 = dg1%11; } if((dg2%11) == 10){ dg2 = 0; }else{ dg2 = dg2%11; } if(Character.getNumericValue(cpf.charAt(12)) == dg1 && Character.getNumericValue(cpf.charAt(13)) == dg2 ){ System.out.print("CPF valido\n"); }else{ System.out.print("CPF invalido\n"); } } } public static void main(String[] args) { cpf(); } }
  17. Igor Vargas

    PostgreSQL slq min e max

    Olá, estou com duvida no seguinte problema. Como faço para pesquisar o nome mais o maior e menor numero e a media em um sql. Por enquanto consegui isso. falta a media SELECT name, customers_number from lawyers WHERE customers_number = (select MAX(customers_number) from lawyers) Union SELECT name, customers_number from lawyers WHERE customers_number = (select min(customers_number) from lawyers)
  18. @Bianca Regan Tranquilo. valeu
  19. @Bianca Regan valeu pela ajuda. Mas meu problema é em lista encadeada mesmo. To com dificuldade de fazer os apontamentos
  20. Olá estou com duvida em como ordenar com strcmp. Minha funcão cadastra o aluno também ordema.Mas quando cadastro digamos "Barbara" ele fica na frente de "Ana", ele da um erro, onde ele para de funcionar int CadastroAluno(Cad* li){ printf("voce SELECIONOU CADASTRAR ALUNO\n\n"); struct elementoCadastro *no =(struct elementoCadastro*)malloc(sizeof(struct elementoCadastro)); struct Cadastro c; printf("Nome:"); fflush(stdin); gets(c.nome); printf("Nascimento:"); gets(c.nascimento); printf("Endereco:"); gets(c.endereco); printf("Estado:"); gets(c.estado); printf("Cidade:"); gets(c.cidade); printf("Email:"); gets(c.email); printf("CPF:"); scanf("%d",&c.cpf); printf("Telefone:"); scanf("%d",&c.telefone); c.matricula = matricula; int igual =AlunoIgual(li,c); char testando[50]; if(igual == 1){ printf("**Esse cpf ja existe**!\n"); }else{ //int testando = procura(li,c.nome); if(*li==NULL){ no->cadastro = c; no->prox = (*li); no->ant = NULL; if(*li!=NULL){ (*li)->ant = no; } *li = no; }else{ struct elementoCadastro *atual,*ant,*o = *li; printf("Entrou aqui"); while(o!=NULL){ if(strcmp(o->cadastro.nome,c.nome) < 0){ ant = o; return 1; }else{ //no->ant = o; no->cadastro = c; no->prox = (*li); *li= no; }if(ant->prox == NULL){ printf("Entrou no print"); no->cadastro = c; o->prox = no; no->ant = o->prox; *li = no; } o = o->prox; } } } matricula++; printf("Aluno cadastrado com sucesso Matricula -> %d\n\n",no->cadastro.matricula); }
  21. Consegui resolver
  22. Olá estou com duvida em como posso remover valor iguais da lista. Basicamente o usuário não pode colocar valores que já tem na lista. Eu fiz o seguinte. Minha função igual que cuida disso, mas n esta dando certo. #include <stdio.h> #include <stdlib.h> #include <string.h> struct elemento{ struct elemento *prox; int numero; struct elemento *ant; }; typedef struct elemento *lista; typedef struct elemento Bloco; int igual(lista *li,int num){ Bloco *ant,*p=*li; while(p!=NULL ){ if(num== p->numero){ p->ant->prox = p->prox; if(p->ant == NULL){ *li = p->prox; } } p=p->prox; } return num; /*if(p == NULL){ return 0; } if(p->ant == NULL){ *li = p->prox; }else{ p->ant->prox = p->prox; } free(p);*/ //return li; } int Inserir(lista *li, Bloco num){ if(li == NULL){ return 0; } Bloco *no =(Bloco*)malloc(sizeof(Bloco)); no->numero = igual(li,num.numero); no->prox = (*li); no->ant = NULL; if(*li!=NULL){ (*li)->ant = no; } *li = no; return 1; } void imprime(lista *li){ Bloco *p = *li; while(p->prox!=NULL){ printf("%d->",p->numero); p = p->prox; } } int OrdemCrescente(lista *li){ int n; Bloco *ant,*p = *li; while(p!=NULL){ ant = p; while(ant !=NULL){ if(ant->numero < p->numero){ n = p->numero; p->numero = ant->numero; ant->numero = n; } ant = ant->prox; } p = p->prox; } return 1; } lista *criaLista(){ lista *no=(lista *)malloc(sizeof(lista)); if(no!=NULL){ *no = NULL; } return no; } main(){ lista *li =(lista *)malloc(sizeof(lista)); *li = NULL; Bloco num; int x; do{ printf("\n1- Adicionar\n"); printf("2- Imprimir\n"); scanf("%d",&x); if( x == 1){ printf("Digite um numero:"); scanf("%d",&num.numero); Inserir(li,num); OrdemCrescente(li); }else if( x == 2){ imprime(li); }else{ break; } }while(x!=3); }
  23. @Flávio Pedroza Olá, obrigado pela ajuda. Mas acabei fazendo de outra forma. #include <stdio.h> #include <stdlib.h> #include <string.h> struct Dados{ char placa[9],tipo[50],cor[50]; int anoF; float preco; }; struct Elemento{ struct Dados dados; struct Elemento *prox; }; typedef struct Elemento *lista; lista* criaLista(){ lista *d=(lista*)malloc(sizeof(lista)); printf("Alocou\n"); if(d!=NULL){ *d = NULL; } return d; } int Cadastra(lista *li,struct Dados d){ if( li == NULL){ printf("Algo deu errado"); return 0; } struct Elemento *l =(struct Elemento*)malloc(sizeof(struct Elemento)); if( l == NULL){ printf("Não alocou\n"); }else{ l->dados = d; l->prox = (*li); *li = l; } printf("Cadastrado com sucesso!!\n"); return 1; } Relatorio(lista *li){ struct Elemento *aux = *li; while(aux!=NULL){ printf("\n"); printf("TIPO:%s\n",aux->dados.tipo); printf("PLACA:%s\n",aux->dados.placa); printf("COR:%s\n",aux->dados.cor); printf("ANO:%d\n",aux->dados.anoF); printf("PRECO:%.2f\n",aux->dados.preco); aux=aux->prox; } } main(){ struct Dados d; lista *li; li =criaLista(); int x; do{ printf("1-Cadastrar:\n"); printf("2-Vender:\n"); printf("3-Procurar:\n"); printf("4-Relatorio:\n"); scanf("%d",&x); getchar(); if( x == 1){ printf("Digite o Tipo de Automovel:"); fgets(d.tipo,50,stdin); printf("Digite a Placa do Automovel:"); fgets(d.placa,9,stdin); printf("Digite a Cor do Automovel:"); fgets(d.cor,50,stdin); printf("Digite o Ano do Automovel:"); fflush(stdin); scanf("%d",&d.anoF); printf("Digite o Preco do Automovel:"); scanf("%f",&d.preco); Cadastra(li,d); }else if( x == 2){ }else if( x == 3){ }else if( x == 4){ Relatorio(li); }else{ break; } }while(x!=5); }
  24. Olá estou com uma duvida. A minha lista fica dando o seguinte erro " [Error] request for member 'tipo' in something not a structure or union". Mas n entendo o motivo. #include <stdio.h> #include <stdlib.h> #include <string.h> struct Lista{ char placa[9],tipo[50],cor[50]; int anoF; float preco; struct Lista *prox; }; typedef struct Lista *lista; typedef struct Lista dados; lista* criaLista(){ lista *li = (lista*)malloc(sizeof(lista)); if(li != NULL){ li = NULL; } return li; } lista* Cadastra(lista *li){ if( li == NULL){ printf("Algo deu errado"); return 0; } lista *l = (lista*)malloc(sizeof(lista)); l->prox=li; li = l; printf("Cadastrado com sucesso!!"); return li; } void Relatorio(lista *li){ lista *aux = li; while(aux!=NULL){ printf("TIPO:%s",aux->tipo); printf("PLACA:%s",aux->placa); printf("COR:%s",aux->cor); printf("ANO:%d",aux->anoF); printf("PRECO:%f",aux->preco); aux=aux->prox; } } main(){ lista *l; l = criaLista(); int x; do{ printf("1-Cadastrar:\n"); printf("2-Vender:\n"); printf("3-Procurar:\n"); printf("4-Relatorio:\n"); scanf("%d",&x); if( x == 1){ printf("Digite o Tipo de Automovel:"); gets(l->tipo); printf("Digite a Placa do Automovel:"); gets(l->placa); printf("Digite a Cor do Automovel:"); gets(l->cor); printf("Digite o Ano do Automovel:"); scanf("%d",&l->anoF); printf("Digite o Preco do Automovel:"); scanf("%f",&l->preco); Cadastra(l); }else if( x == 2){ }else if( x == 3){ }else if( x == 4){ Relatorio(l); }else{ break; } }while(x!=5); }
  25. adicionado 2 minutos depois @daniel.oliveira O que foi me ensinado é que quando tu aloca a memória ele retorna um ponteiro vazio ou seja tu precisa passar o endereço.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!