Ir ao conteúdo

Algoritmo*Java


ForThe

Posts recomendados

Postado

Escrever um algoritmo que lê um vetor X(20). Escreva, a seguir, cada um dos valores diferentes que aparecem em X dizendo quantas vezes cada valor aparece em X.

Fiz o código porém não está dando certo, sou iniciante em java e preciso de ajuda.

package Exercicio5;

import java.util.Scanner;

public class Exercicio5 {

static Scanner sc = new Scanner(System.in);

public static void main(String[] args) {

int i;
int vX[] = new int[5];
int vA[]=new int[5];
for (i = 0; i < 5; i++) {
System.out.print("Digite elemento para vetor: [" + (1+i) + "] ");
vX[i] = sc.nextInt();

if(i==0){
vA[i]=vX[i];
} if(vX[i]!=vA[i]){
vA[i]=vX[i];

}

for (i = 0; i < 5; i++) {
System.out.println("Vetor X: " + vX[i]+" valores distintos "+ vA[i]);

}
}}}

Agradeço desde já!

Postado
Escrever um algoritmo que lê um vetor X(20). Escreva, a seguir, cada um dos valores diferentes que aparecem em X dizendo quantas vezes cada valor aparece em X.

Fiz o código porém não está dando certo, sou iniciante em java e preciso de ajuda.

package Exercicio5;

import java.util.Scanner;

public class Exercicio5 {

static Scanner sc = new Scanner(System.in);

public static void main(String[] args) {

int i;
int vX[] = new int[5];
int vA[]=new int[5];
for (i = 0; i < 5; i++) {
System.out.print("Digite elemento para vetor: [" + (1+i) + "] ");
vX[i] = sc.nextInt();

if(i==0){
vA[i]=vX[i];
} if(vX[i]!=vA[i]){
vA[i]=vX[i];

}

for (i = 0; i < 5; i++) {
System.out.println("Vetor X: " + vX[i]+" valores distintos "+ vA[i]);

}
}}}

Agradeço desde já!

Olá!

Dando uma olhada rápida no seu código, percebi 2 coisas que estão um pouco confusas.

1. O segundo for está "dentro" do primeiro for, ou seja, para cada iteração do primeiro, o segundo vai rodar i vezes. Como essa última iteração é responsável pelo resultado do programa, creio que deveria estar separado, no final do método.

2. Essa parte do código


if(i==0){
vA[i]=vX[i];
}
if(vX[i]!=vA[i]){
vA[i]=vX[i];
}

Eu não entendi muito bem o que você quis fazer aqui. Acredito que o que você deseja é fazer uma verificação para cada adição no vetor principal, para ver se esse valor já existe no vetor auxiliar. O que você deveria fazer, se continuar com essa estratégia de verificar na adição do valor, é para cada entrada do usuário verificar se esse valor já foi inserido no vetor. Nesse caso, você também deveria ter um controle auxiliar que armazenaria a quantidade de vezes que esse valor foi inserido para depois mostrar no resultado.

Você também pode fazer a verificação após o preenchimento de todas as entradas pelo usuário. Assim, para cada posição do array, você verificaria todas as restantes, contando as entradas iguais, e eliminando essas posições para não contar novamente. Mais ou menos assim:


for (i=0; i<5; i++) {
valor = v[i];
qtdade = 0;
for (j=i; j<5; j++) {
if(valor == v[j]) {
qtdade++;
// Aí você tem que "zerar" essa posição também, para não contar novamente!
}
}
System.out.println("valor " + v[i] + qtdade + "vezes");
}

Esse código é exemplo, provavelmente tem alguns erros, mas é só pra dar uma ideia do que poderia ser feito.

Aguardo o seu retorno.

Abraços.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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!