Ir ao conteúdo
  • Cadastre-se

Igor Vargas

Membro Pleno
  • Posts

    180
  • Cadastrado em

  • Última visita

posts postados por Igor Vargas

  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"],
    
      },
    
    ];


     

    • Curtir 1
  2. 3 horas atrás, Igor Vargas disse:

    @AdrianoSiqueira  Eu não entendi como é feito esse calculo.

     

    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;
            }
        }
    }

     

  3. @AdrianoSiqueira Sim, entendi.  Quando eu testo os seguintes numeros ele retorna errado.

    Citação

    Entrada

    3
    3 22
    2 11
    3 39

    A saída é

    Cidade# 1:
    2-5 3-7 3-13
    Consumo medio: 9.00 m3

    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;
            }
        }
    }

     

  4. @AdrianoSiqueira o problema é o seguinte

    Citação

    Devido às constantes estiagens que aconteceram nos últimos tempos em algumas regiões do Brasil, o governo federal criou um órgão para a avaliação do consumo destas regiões com finalidade de verificar o comportamento da população na época de racionamento. Este órgão responsável irá pegar algumas cidades (por amostragem) e verificará como está sendo o consumo de cada uma das pessoas da cidade e o consumo médio de cada cidade por habitante.

    Entrada

    A entrada contém vários casos de teste. A primeira linha de cada caso de teste contém um inteiro N (1 ≤ N ≤ 1*106), indicando a quantidade de imóveis. As N linhas contém um par de valores X (1 ≤ X ≤ 10) e Y (1 ≤ Y ≤ 200), indicando a quantidade de moradores de cada imóvel e o respectivo consumo total de cada imóvel (em m3). Com certeza, nenhuma residência consome mais do que 200 m3 por mês. O final da entrada é representado pelo número zero.

    Saída

    Para cada entrada, deve-se apresentar a mensagem “Cidade# n:”, onde n é o número da cidade seguindo a sequência (1, 2, 3, ...) e em seguida deve-se listar, por ordem ascendente de consumo, a quantidade de pessoas seguido de um hífen e o consumo destas pessoas, arredondando o valor para baixo. Na terceira linha da saída deve-se mostrar o consumo médio por pessoa da cidade, com 2 casas decimais sem arredondamento, considerando o consumo real total. Imprimir uma linha em branco entre dois casos de teste consecutivos. No fim da saída não deve haver uma linha em branco.

     

  5. 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++;
            }
    
        }
    
    }

     

  6. 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();
        }
        }

     

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

     

  8. Olá. Eu estou com o seguinte erro "The class 'java.lang.String' does not have the property 'nome'". Então basicamente meu controller busca os dados de varios usuarios e retorna um array para a view

     

    Controller

     

    package br.ufsm.csi.controller;
    
    import br.ufsm.csi.dao.UsuarioDAO;
    import br.ufsm.csi.model.Usuario;
    
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    import java.io.IOException;
    import java.util.ArrayList;
    
    @WebServlet("pesquisa")
    public class PesquisaController extends HttpServlet {
        @Override
        protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
                String cidade = req.getParameter("cidade");
                req.setAttribute("usuarios",new UsuarioDAO().procura(cidade));
                System.out.println("Pesquisa feita com sucesso");
            RequestDispatcher rd = req.getRequestDispatcher("/pesquisa.jsp");
            rd.forward(req, resp);
    
        }
    }

    Pagina pesquisa jsp

     

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ page isELIgnored="false" %>
    
    <html lang="pt-br">
    <head>
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Bootstrap CSS -->
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
        <link rel="stylesheet" type="text/css" href="css/style.css" />
        <title>HomeCut</title>
    </head>
    <body>
    
    <nav class="navbar navbar-expand-lg corOficial shadow ">
        <a class="navbar-brand logo" href="#">Homecut</a>
        <button class="navbar-toggler custom-toggler"  type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon" ></span>
        </button>
        <div class="collapse navbar-collapse justify-content-center ml-5 corOficial" id="navbarNavAltMarkup">
            <div class="navbar-nav corOficial">
                <a class="nav-item nav-link active" href="#">Início <span class="sr-only">(current)</span></a>
    
                <a class="nav-item nav-link " href="#" tabindex="-1" aria-disabled="false">Entrar</a>
            </div>
        </div>
    </nav>
    
    <div class="container contm">
        <h1 class="d-flex justify-content-center mt-5">Aqui Você Encontra os Profissionais Mais Perto de Você</h1>
    
    </div>
    
    <div class="container ">
    
        <form method="post" action="pesquisa">
    
            <div class="form-group umform input-group-lg w-100">
    
                <input type="text" placeholder="Digite o nome da sua cidade" name="cidade"  class="form-control" aria-describedby="inputGroup-sizing-default">
                <button type="submit" class="btn btn-primary botaoPesquisa shadow" name="gravar" value="gravar">Pesquisar</button>
            </div>
    
        </form>
    
    </div>
    
    <c:forEach var="u" items="usuarios" >
      <c:if test="${u !=null}">
    <div class="container containerPesquisa ">
        <div class="row mt-5 m-0 border rounded pesquisaPerfil">
    
            <div class="col-lg  border">
                <h5 class="mt-3">Nome:${u.nome}</h5>
                <h5>Cidade:${u.cidade} </h5>
            </div>
            <div class="col-lg border">
                <h5 class="mt-4">Valor:${u.valor}</h5>
    
            </div>
            <div class="col-lg border">
                <div class="input-group mb-3 mt-2">
                    <div class="input-group-prepend">
                        <label class="input-group-text">Dia</label>
                    </div>
                    <select class="custom-select" id="01">
                        <option selected>Escolha um dia da semana</option>
                        <option value="1">Segunda-Feira</option>
                        <option value="2">Terça-Feira</option>
                        <option value="3">Quarta-Feira</option>
                        <option value="4">Quinta-Feira</option>
                        <option value="5">Sexta-Feira</option>
                        <option value="6">sábado</option>
                        <option value="7">Domingo</option>
                    </select>
                </div>
    
                <div class="input-group mb-3 mt-0">
                    <input type="text" class="form-control" placeholder="Digite seu horário" aria-label="Recipient's usernao para atendimentome" aria-describedby="basic-addon2">
                    <div class="input-group-append">
                        <button class="btn btn-outline-secondary botaoAgendar" type="button">Agendar</button>
                    </div>
                </div>
            </div>
    
        </div>
    </div>
      </c:if>
    </c:forEach>
    
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
    </body>
    </html>

    usuarioDAO

     public ArrayList<Usuario> procura(String cidade){
            ArrayList<Usuario> usuarios = new ArrayList<Usuario>();
            Usuario usuario = new Usuario();
            int num = 2;
            try(Connection connection = new ConectaDB().getConexao()) {
                this.sql = "select * from usuario, usuario_permissao, servico WHERE cidade=? AND usuario.id_user=usuario_permissao.id_user and usuario_permissao.id_perm=? and servico.id_user=usuario.id_user";
                this.preparedStatement = connection.prepareStatement(this.sql, preparedStatement.RETURN_GENERATED_KEYS);
    
                this.preparedStatement.setString(1,cidade);
                this.preparedStatement.setInt(2,num);
                 this.resultSet = this.preparedStatement.executeQuery();
    
                while(this.resultSet.next()){
    
    
                    usuario.setId_user(this.resultSet.getInt("id_user"));
                    usuario.setNome(this.resultSet.getString("nome"));
                    usuario.setEmail(this.resultSet.getString("email"));
                    usuario.setSenha(this.resultSet.getString("senha"));
                    usuario.setCidade(this.resultSet.getString("cidade"));
                    usuario.setEndereco(this.resultSet.getString("endereco"));
                    usuario.setAtivo(this.resultSet.getBoolean("ativo"));
                    usuario.setPermissao(this.resultSet.getInt("id_perm"));
                    usuario.setValor(this.resultSet.getInt("valor"));
                    usuarios.add(usuario);
    
                }
    
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
            return usuarios;
        }

     

  9. Estou usando o emulador easy 6502. E estou com a seguinte duvida. como eu faço para ele ficar verificando a tecla e trocando de letras. Basicamente meu programa troca a letra conforme é apertada no teclado, as letras são "a,e,i,o,u".

     

    define syslastkey $ff
    define ascii_a $61
    define ascii_e $65
    define ascii_i $69
    define ascii_o $6f
    define ascii_u $75
    
    ;letra a
    
    
    verifica_tecla:
    lda syslastkey
    sta $03
    cmp ascii_a
    beq volta
    lda syslastkey
    sta $04
    cmp ascii_e
    bne letra_e
    
    
    letra_a:
    jmp verifica_tecla
    volta:
    lda #$01
    sta $308 ;parte de cima
    sta $309
    sta $30a
    sta $30b
    sta $30c
    sta $30d
    sta $30e
    sta $30f
    sta $310
    sta $311
    sta $312
    sta $313
    sta $314
    sta $315 
    sta $328 ; lateral esquerda
    sta $348
    sta $368
    sta $388
    sta $3a8
    sta $3c8
    sta $3e8
    sta $408
    sta $428
    sta $448
    sta $468
    sta $488
    sta $335 ; lateral direita
    sta $355
    sta $375
    sta $395
    sta $3b5
    sta $3d5
    sta $3f5
    sta $415
    sta $435
    sta $455
    sta $475
    sta $495
    sta $3c9 ; parte do meio
    sta $3ca
    sta $3cb
    sta $3cc
    sta $3cd
    sta $3ce
    sta $3cf
    sta $3d0
    sta $3d1
    sta $3d2
    sta $3d3
    sta $3d4
    jmp verifica_tecla
    
    letra_e:
    lda #$01
    sta $308 ;parte de cima
    sta $309
    sta $30a
    sta $30b
    sta $30c
    sta $30d
    sta $30e
    sta $30f
    sta $310
    sta $311
    sta $312
    sta $313
    sta $314
    sta $315 
    sta $328 ; lateral esquerda
    sta $348
    sta $368
    sta $388
    sta $3a8
    sta $3c8
    sta $3e8
    sta $408
    sta $428
    sta $448
    sta $468
    sta $488
    sta $3c9 ; parte do meio
    sta $3ca
    sta $3cb
    sta $3cc
    sta $3cd
    sta $3ce
    sta $3cf
    sta $3d0
    sta $3d1
    sta $3d2
    sta $3d3
    sta $3d4
    sta $3d5
    sta $489 ; parte de baixo
    sta $48a
    sta $48b
    sta $48c
    sta $48d
    sta $48e
    sta $48f
    sta $490
    sta $491
    sta $492
    sta $493
    sta $494
    sta $495
    jmp verifica_tecla
    

     

    • Curtir 1
  10. 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);
    	}

     

     

     

    • Curtir 1
  11. 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);
    	
    	
    
    
    
    
    
    
    
    
    
    }

     

  12. @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);
    
    }

     

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

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!