Multiplicando vetores

Alguem me ajuda, meu codigo não está indo
Implemente um algoritmo que seja capaz de solicitar ao usuário por 10 números. Estes números devem ser armazenados em uma variável do tipo vetor.

Solicite ao usuário por mais um número inteiro.

Crie um segundo vetor, cujos valores devem ser os mesmos valores do primeiro vetor informado, multiplicado por este novo número informado.

Apresente na tela o primeiro vetor e o segundo vetor com os dados multiplicados.

Exemplo:

Primeiro vetor informado pelo usuário = {5, 2, 1, 10, 3}

Número informado: 2

Segundo vetor calculado = {10, 4, 2, 20, 6}

Bloco de Citação
import javax.swing.JOptionPane;

public class Debora1 {

public static void main(String[] args) {
	int soma = 0;
	int soma2 = 0;

	int vetor[] = new int[10];
	for (int cont = 0; cont < vetor.length; cont++) {
		vetor[cont] = Integer.parseInt(JOptionPane.showInputDialog("Informe os valores"));
	}

	int num = Integer.parseInt(JOptionPane.showInputDialog("Informe um numero"));

	int vetor1[] = new int[10];
	for (int i = 0; i < vetor1.length; i++) {
		vetor1[i] = Integer.parseInt(JOptionPane.showInputDialog("Informe os valores do segundo"));
	}

	for (int contador = 0; contador < vetor.length; contador++) {
		soma = vetor[contador] * num;
	}
	for (int contador2 = 0; contador2 < vetor1.length; contador2++) {
		soma2 = vetor1[contador2] * num;
	}
	System.out.println(soma + "\n" + soma2);
}

}

Vc interpretou o problema errado, pois está pedindo pro usuario entrar com o primeiro vetor, com o número multiplicador e com o segundo vetor também.

O problema diz que o usuario deve inserir apenas o primeiro vetor e o multiplicador. O segundo vetor deve ser criado automaticamente com base no primeiro, ele é igual ao primeiro multiplicado pelo multiplicador.

Vc também está tentando exibir a soma, mas o enunciado não pode isso, ele pede pra exibir os vetores, tanto o primeiro que o usuario inseriu quando o segundo que seu código gerou. Seria assim:

import java.util.Arrays;

import javax.swing.JOptionPane;

public class Programa {
  public static void main(String... args) {
    int[] numerosInseridos = new int[10];
    for (int i = 0; i < numerosInseridos.length; i++) {
      numerosInseridos[i] = Integer.parseInt(JOptionPane.showInputDialog("Informe os valores"));
    }

    int multiplicador = Integer.parseInt(JOptionPane.showInputDialog("Informe um numero"));

    int[] numerosMultiplicados = new int[10];
    for (int i = 0; i < numerosMultiplicados.length; i++) {
      numerosMultiplicados[i] = numerosInseridos[i] * multiplicador;
    }

    System.out.println(Arrays.toString(numerosInseridos));
    System.out.println(Arrays.toString(numerosMultiplicados));
  }
}

Algumas observações:

  1. No seu código, em cada for vc usou um nome diferente para a variável de controle do loop, mas isso não é necessário. Veja como eu usei o mesmo nome (no caso “i”) para os 2 fors. Seguir um padrão é melhor pois evita confusão. Não precisa se preocupar pois neste caso, uma variável i não interfere na outra, cada for tem sua propria variavel chamada i.

  2. Em Java, por convenção, na hora de declarar um array, os colchetes devem vir logo após o tipo como eu fiz no meu código (int[] numeros). Não há problema em colocar os colchetes após o nome da variável como vc fez (int numeros[]), seu código funciona normalmente, mas é bom seguir a convenção, sabe?

import javax.swing.JOptionPane;

public class Debora1 {

public static void main(String[] args) {
	int vetor[] = new int[10];
	for (int i = 0; i < vetor.length; i++) {
		vetor[i] = Integer.parseInt(JOptionPane.showInputDialog("Informe os valores"));
	}

	int num = Integer.parseInt(JOptionPane.showInputDialog("Informe um numero"));

	int vetor1[] = new int[10];
	for (int i = 0; i < vetor1.length; i++) {
		vetor1[i] = vetor[i] * num;
	}
	System.out.println(vetor);
	System.out.println(vetor1);
}

}

mudei o código e executei, porém quando eu executo aparecem essas mensagens no console:
[I@393671df
[I@56620197

1 curtida

Isto está correto, ele está imprimindo a representação do array.

Se vc quer imprimir o conteúdo do array, pode fazer como eu fiz no exemplo e usar o Arrays.toString(), assim:

System.out.println(Arrays.toString(vetor));
System.out.println(Arrays.toString(vetor1));

Ou fazer “manualmente”, assim

for (int i = 0; i < vetor.length; i++) {
  System.out.print(vetor[i] + " ");
}
1 curtida

ah, okay. Meu professor não tinha comentado sobre esse detalhe na aula.
muito obrigada

1 curtida