Problemas com vetor [RESOLVIDO]

Olá!
tem um exercício da faculdade que pede para ler dois vetores de 4 posições e imprimir um terceiro vetor que é formado pelos outros dois, por exemplo: vet_a[1 , 2 , 3 , 4] vet_b[5 , 6, 7, 8] vet_c[1, 2, 3, 4, 5, 6, 7, 8]

alguém pode me ajudar?

o codigo que eu fiz (não deu certo) foi o seguinte:

import java.util.Scanner;

public class Main {

        public static void main(String[] args) {

            int i, j, k;
            float vet_a[]=new float[4], vet_b[]=new float[4], vet_c[]=new float[8];
            Scanner vet = new Scanner(System.in);
            for(i=0; i<vet_a.length; i++){
                System.out.println("Digite o valor da casa "+(i+1)+" :");
                vet_a[i]=vet.nextFloat();
            }
            for(j=0; j<vet_b.length; j++){
                System.out.println("Digite o valor da casa "+(j+1)+" :");
                vet_b[j]=vet.nextFloat();
            }
            for(k=0; k<vet_a.length; k++){
                vet_c[k]=vet_a[k];
            }
            for(k=4; k<7; k++){
                vet_c[k]=vet_b[k];
            }
            for(k=0; k<=vet_c.length; k++) System.out.println("O vetor c eh: "+vet_c[k]);
    }

[quote=senseitrash] for(k=4; k<7; k++){ vet_c[k]=vet_b[k]; } [/quote]
O problema está aqui. Os índices 4 a 7 do vet_c vão ter os índices 0 a 3 do vet_b.

eu modifiquei essa parte, mas ainda assim ele da problema, não imprimi o vetor…

import java.util.Scanner;

public class vettt
{
    
    public vettt()
    {
        int i, j, k;
            float vet_a[]=new float[4], vet_b[]=new float[4], vet_c[]=new float[8];
            Scanner vet = new Scanner(System.in);
            for(i=0; i<vet_a.length; i++){
                System.out.println("Digite o valor da casa "+(i+1)+" :");
                vet_a[i]=vet.nextFloat();
            }
            for(j=0; j<vet_b.length; j++){
                System.out.println("Digite o valor da casa "+(j+1)+" :");
                vet_b[j]=vet.nextFloat();
            }
            for(k=0; k<vet_a.length; k++){
                vet_c[k]=vet_a[k];
            }
            for(k=4; k<7; k++){
                for(j=0; j<vet_b.length; j++) vet_c[k]=vet_b[j];
            }
            for(k=0; k<=vet_c.length; k++) System.out.println("O vetor c eh: "+vet_c[k]);
    }

    
}

ele acusa erro no “for de impressão”.

Ferinha Usei o for aprimorado de uma olhada .

[code]import java.util.Scanner;

public class TesteScaner {

public static void main(String[] args) {

	int i, j, k;
	float vet_a[] = new float[4], vet_b[] = new float[4], vet_c[] = new float[8];
	Scanner vet = new Scanner(System.in);
	
	for (i = 0; i < vet_a.length; i++) {
		System.out.println("Digite o valor da casa " + (i + 1) + " :");
		vet_a[i] = vet.nextFloat();
	}
	for (j = 0; j < vet_b.length; j++) {
		System.out.println("Digite o valor da casa 2 " + (j + 1) + " :");
		vet_b[j] = vet.nextFloat();
	}
	
	for(float t : vet_a){
		System.out.println("Valor do vetor a " +t);
	}
	
	for(float t : vet_b){
		System.out.println("Valor do vetor b " + t);
	}
	
	int x = 0;
	for (float t : vet_a) {
		vet_c[x] = t;
		x++;
	}
	for (float t : vet_b) {
		vet_c[x] = t;
		x++;
	}		

	for (float t : vet_c){
		System.out.println("O vetor c eh: " + t);
	}
}

}
[/code]

import java.util.Scanner;   
  
public class Main {   
  
        public static void main(String[] args) {   
  
            int i, j, k;   
            float vet_a[]=new float[4], vet_b[]=new float[4], vet_c[]=new float[8];   
            Scanner vet = new Scanner(System.in);   
            for(i=0; i<vet_a.length; i++){   
                System.out.println("Digite o valor da casa "+(i+1)+" :");   
                vet_a[i]=vet.nextFloat();   
            }   
            for(j=0; j><vet_b.length; j++){   
                System.out.println("Digite o valor da casa "+(j+1)+" :");   
                vet_b[j]=vet.nextFloat();   
            }   
            for (k = 0; k >< vet_c.length; k++) {
               if (k < 4)
                   vet_c[k] = vet_a[k];
               else
                   vet_c[k] = vet_b[k - 4];
            }           
            for(k=0; k<=vet_c.length; k++) System.out.println("O vetor c eh: "+vet_c[k]);   
    }  

Amigo acho que isso resolve, mudei um pouco o trecho entre as linhas 18 e 23.
abs

obrigado pelas sugestões.

agora estou no trabalho e não posso testar, mas farei isso quando chegar em casa.

por isso ainda não vou por o [RESOLVIDO]

abraços!

Na boa, não façam isto:

               int x;
		for (float t : vet_b) {
			vet_c[x] = t;
			x++;
		}		

é muito ruim. use o for com inteiro. Estamos iterando posições e não dados.

        
		for (int i = 0; i < x.length ; i++) {
			vet_c[i] = vet_b[i];
		}		

Ou use System.arraycopy que é mais simples e eficaz.

Realmente eu pensei em passar o ArrayCopy para ele , porem como eh tarefa de casa que estava em duvida tentei explicar da melhor maneira .

Seu codigo está certo,so tem um problema no penultimo for

 
            for(k=4; k<8; k++){
                vet_c[k]=vet_b[k-4];
            }
          

mais explicito seria

 for(k=a.length; k< b.length; k++){
                vet_c[k]=vet_b[k-a.length];
 }

Gostei da sua observação mas este poste que vc se refere ao for nao foi o meu =/ .

sergiotaborda

do peimeiro jeito que vc sugeriu nesse seu ultimo post dá quase certo, ele imprimi o resultado em vermelho da seguinte forma:

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 8
at vetor2.Main.main(Main.java:27)
9.0 8.0 7.0 6.0 1.0 2.0 3.0 4.0 Java Result: 1

os valores estão certos, mas acho que esse não é o jeito certo de imprimir o resultado, é?

valeu pessoal! já ajudaram muito! aprendi bastante!

abraços!