Ir ao conteúdo
  • Cadastre-se
cal.ba12

RESOLVIDO vetor

Recommended Posts

Galara,

 

Preciso criar um programa para ler 10 numeros em um vetor e no final informar quantas vezes cada numero se repete dentro do vetor. so com vetor. dicas de como posso fazer

 

EX: 1.1.1.3.3.4.5.6.7.4

1 - 3

3 - 2

4 - 2

5 - 1

6 - 1

7 - 1 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde @cal.ba12,

 

Para fazer este exercicio você vai precisar:

 

Após os elementos serem inseridos o vetor tera que ser ordenado (http://www.javaprogressivo.net/2012/09/como-usar-classe-arrays-java.html)

 

Uma variavel para contar as repetições;

E uma pra gerar a resposta;

Dai é só varrer o array e ir comparando o indice atual, com o proximo (ex: array[0] = array[1], depois array[0] = array[2] ... ), enquanto for verdadeiro você incrementa a variavel de repetições, quando for falso você exibe a resposta e troca o indice de comparação (ex: array[1] = array[2], depois array[1] = array[3] ...)

 

Espero ter ajudado

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia @

 

Meu programa ficou assim, mais no final ele imprime a resposta e completa com um mente de 1 você teria um a solução para isso?. E obrigado pala ajuda.

package Aula;import java.util.Scanner;public class es {public static void main (String[] args) {int q = 0;Vetor4(q);}public static void Vetor4(int q) {Scanner sc = new Scanner(System.in);int i,n,x,j=0;double[] v1 = new double[10];double[] y = new double[10];for(i=0;i<10;i++){System.out.println("Digite o "+(i+1)+"º"+" Numero:");x =sc.nextInt();for(n = 0;n <= i; n++){            if(v1[n] == x){                y[n]++;                              break;            }}v1[j] = x;        y[j]++;        j++;}for(i = 0; i < j; i++){        if(v1[i] > 0){            System.out.print(" O numero "+v1[i]+" aparece "+y[i]+" vezes\n");        }} }}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia @cal.ba12

 

O problema no seu código é o seguinte

 

1º caso

 

Se o vetor estiver desordenado na saida serão repeditos os valores devido ao if, isso porque ele não "varre" o vetor desde o inicio.

 

ex:

entrada:

1

2

1

3

4

5

1

2

9

3

saida:

O numero 1.0 aparece 3.0 vezes
 O numero 2.0 aparece 2.0 vezes
 O numero 1.0 aparece 1.0 vezes
 O numero 3.0 aparece 2.0 vezes
 O numero 4.0 aparece 1.0 vezes
 O numero 5.0 aparece 1.0 vezes
 O numero 1.0 aparece 1.0 vezes
 O numero 2.0 aparece 1.0 vezes
 O numero 9.0 aparece 1.0 vezes
 O numero 3.0 aparece 1.0 vezes

 

2º caso

Se o vetor estiver ordenado o mesmo exibira entrada repetidas devido ao if

 

Segue código de exemplo:

 public static void main(String[] args) {        // TODO code application logic here        int[] i = new int[7];        int aux=0;        String resp="";                //aqui é populado o array, contudo esta fora de ordem        i[0]= 2;         i[1]= 2;                 i[2]= 2;                 i[3]= 3;                 i[4]= 4;                 i[5]= 3;                 i[6]= 1;         //array é ordenado      Arrays.sort(i);       for(int is =0;is<i.length;is++)       {            int iss=0;           //compara uma posição com a proxima           // contudo é necessario verificar se a proxima exite           if(is<(i.length-1))           {           iss = is+1;}                      if(i[is] != i[iss])           {               resp += i[is] + " repete: " +(aux+1) + "\n";               aux=0;           }           else           {               aux++;           }       }              System.out.println(resp);                  }

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×