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:
importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){inti,j,k;floatvet_a[]=newfloat[4],vet_b[]=newfloat[4],vet_c[]=newfloat[8];Scannervet=newScanner(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]);}
O problema está aqui. Os índices 4 a 7 do vet_c vão ter os índices 0 a 3 do vet_b.
S
senseitrash
eu modifiquei essa parte, mas ainda assim ele da problema, não imprimi o vetor…
importjava.util.Scanner;publicclassvettt{publicvettt(){inti,j,k;floatvet_a[]=newfloat[4],vet_b[]=newfloat[4],vet_c[]=newfloat[8];Scannervet=newScanner(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”.
edmarr
Ferinha Usei o for aprimorado de uma olhada .
importjava.util.Scanner;publicclassTesteScaner{publicstaticvoidmain(String[]args){inti,j,k;floatvet_a[]=newfloat[4],vet_b[]=newfloat[4],vet_c[]=newfloat[8];Scannervet=newScanner(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(floatt:vet_a){System.out.println("Valor do vetor a "+t);}for(floatt:vet_b){System.out.println("Valor do vetor b "+t);}intx=0;for(floatt:vet_a){vet_c[x]=t;x++;}for(floatt:vet_b){vet_c[x]=t;x++;}for(floatt:vet_c){System.out.println("O vetor c eh: "+t);}}}
felipehand
importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){inti,j,k;floatvet_a[]=newfloat[4],vet_b[]=newfloat[4],vet_c[]=newfloat[8];Scannervet=newScanner(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];elsevet_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
S
senseitrash
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!
sergiotaborda
Na boa, não façam isto:
intx;for(floatt:vet_b){vet_c[x]=t;x++;}
é muito ruim. use o for com inteiro. Estamos iterando posições e não dados.
for(inti=0;i<x.length;i++){vet_c[i]=vet_b[i];}
Ou use System.arraycopy que é mais simples e eficaz.
edmarr
Realmente eu pensei em passar o ArrayCopy para ele , porem como eh tarefa de casa que estava em duvida tentei explicar da melhor maneira .
sergiotaborda
Seu codigo está certo,so tem um problema no penultimo for