Tenho 2 vetores de 5 posições ambas e quero passar esses vetores para somente um de 10. sendo que um vetor A tem que ficar nos indices pares e o vetor B nos indices impares. como faço eu fiz alguma coisa mas sem mto sucesso. Pq não funciona assim oq tem de errado??
[code] for(i=0; i<5; i++){
String aux = JOptionPane.showInputDialog(null,“Digite N° para posição " +i+ " do 1°Vetor:”);
vet0[i] = Integer.parseInt(aux);
}
for(j=0; j<5; j++){
String aux = JOptionPane.showInputDialog(null,“Digite N° para posição " +j+ " do 2°Vetor:”);
vet1[j] = Integer.parseInt(aux);
}
for (m=0; m<10; m++){
if (m % 2 == 0){
vet2[m]= vet0[i];
}
else if (m % 2 == 1){
vet2[m] = vet1[j];
}
System.out.print(vet2[m]);
}[/code]
VictorFarion,
o seu erro está aqui:
else if (m % 2 == 1){
deixe apenas assim:
else{
Blz?
[quote=Renato_natos]VictorFarion,
o seu erro está aqui:
else if (m % 2 == 1){
deixe apenas assim:
else{
Blz?[/quote]
Renato mesmo assim não deu certo ele ainda aparece uma msg de erro está aqui.
“Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 5
at Vetor.vetor1.main(vetor1.java:28)”
[quote=Renato_natos]VictorFarion,
o seu erro está aqui:
else if (m % 2 == 1){
deixe apenas assim:
else{
Blz?[/quote]
Obviamente o erro não é esse. A condição do else pode até ser inútil (já que se não é um é outro), mas está correta, e não é isso que está atrapalhando o colega.
O problema é que você está não está atualizando os valores de i e de j no segundo for.
[code]
int vet0[] = new int[5];
for (int i = 0; i < 5; i++) {
String aux = JOptionPane.showInputDialog(null,
“Digite N° para posição " + i + " do 1°Vetor:”);
vet0[i] = Integer.parseInt(aux);
}
int vet1[] = new int[5];
for (int i = 0; i < 5; i++) {
String aux = JOptionPane.showInputDialog(null,
“Digite N° para posição " + i + " do 2°Vetor:”);
vet1[i] = Integer.parseInt(aux);
}
int i = 0;
int j = 0;
int vet2[] = new int[10];
for (int m = 0; m < 10; m++) {
if (m % 2 == 0) {
vet2[m] = vet0[i];
i++;
} else if (m % 2 == 1) { //Melhor seria só else, como o colega mostrou.
vet2[m] = vet1[j];
j++;
}
System.out.print(vet2[m]);
}[/code]
valew agora fico bacana o meu vetor e me diga uma coisa eu analisei e vi oq tava fazendo de errado… ma diga pq vc colocou os i++ e os j ++ nos ifs??? pois isso que tava errado no meu codigo e não entendi mto o pq dos is.
Primeiro, vejamos quem é quem:
No for debaixo, i está armazendo qual posição do vetor 0 devo gravar no vetor 2
j está armazenando que posição do vetor 1 devo gravar no vetor 2
e m está armazendo em que posição do vetor 2 estou.
Agora, quando copio o valor de vetor0[i] para vetor2[m] o que falta dizer ao Java?
Que na próxima vez que entrar nesse for, quero a próxima posição do vetor0. E como digo isso? Fazendo i++.
Dica: Pegue um papel e um lápis e “rode” você mesmo o teste mentalmente, anotando os valores das variáveis. Com o teste de mesa, você facilmente vai ver o que acontece.
[quote=ViniGodoy]Primeiro, vejamos quem é quem:
No for debaixo, i está armazendo qual posição do vetor 0 devo gravar no vetor 2
j está armazenando que posição do vetor 1 devo gravar no vetor 2
e m está armazendo em que posição do vetor 2 estou.
Agora, quando copio o valor de vetor0[i] para vetor2[m] o que falta dizer ao Java?
Que na próxima vez que entrar nesse for, quero a próxima posição do vetor0. E como digo isso? Fazendo i++.
Dica: Pegue um papel e um lápis e "rode" você mesmo o teste mentalmente, anotando os valores das variáveis. Com o teste de mesa, você facilmente vai ver o que acontece.[/quote]
sim eu entendo vou fazer isso copiar o com lapis e fazer pra fichar bem a lógica mas deu pra entender agora…
vo mandar desse tópico msmo me diga vc pode me dar mais uma mãozinha neh…
eu to fazendo agora 2 vetores de 5 posição e quero passar eles numa matriz [2][5] usando meus vetores eu consegui passar um deles mas não o outro… vo colar aqui meu código… se puder me ajudar estaria muito grato.
[code]int vet0[] = new int[5];
for (int i = 0; i < 5; i++) {
String aux = JOptionPane.showInputDialog(null,
"Digite N° para posição " + i + " do 1°Vetor:");
vet0[i] = Integer.parseInt(aux);
}
int vet1[] = new int[5];
for (int i = 0; i < 5; i++) {
String aux = JOptionPane.showInputDialog(null,
"Digite N° para posição " + i + " do 2°Vetor:");
vet1[i] = Integer.parseInt(aux);
}
int num2[] [] = new int [5][2];
for (int i = 0; i < 5; i ++){
for (int j = 0;j < 2;j++){
num2[i][j]= vet0[i]; // deixei sem colocar o outro vetor pois não sei ao certo como faze-lo
System.out.print(num2[i][j]+ " ");
}
System.out.println(" ");
}
[/code]