Vetor

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]