Tenho o seguinte problema que nao to conseguindo resolver…
O codigo tem que ler duas matrizes de 7 elementos. Tenho que construir uma matriz C com duas dimensoes: a primeira coluna tera todos os dados digitados na matriz A e a segunda coluna na matriz B.
O que esta errado no codigo??
importjavax.swing.JOptionPane;classExercicio8{publicstaticvoidmain(Stringarg[]){intA[][]=newint[7][1];intB[][]=newint[7][1];intC[][]=newint[7][2];for(inti=0;i<7;i++){for(intj=0;j<1;j++){A[i][j]=Integer.parseInt(JOptionPane.showInputDialog("Digite o valor A ["+i+"] [ "+j+" ] "));}}for(inti=0;i<7;i++){for(intj=0;j<1;j++){B[i][j]=Integer.parseInt(JOptionPane.showInputDialog("Digite o valor B ["+i+"] [ "+j+" ] "));}}for(inti=0;i<7;i++){for(intj=0;j<2;j++){C[i][j]=A[i][j];C[i][j]=B[i][j];}}for(inti=0;i<7;i++){for(intj=0;j<1;j++){System.out.print(C[i][j]+" ");}System.out.print("\n");}}}
for (int i = 0; i < 7; i++) {
for (int j = 0; j < 2; j++) {
C [i][j]= A[i][j] ;
C[i][j] = B[i][j] ;
}
Aqui você está setando 2 valores na posição C[i][j], enào só o segundo irá aparecer… Você precisa percorrer todas as matrizes A e B, e setar o valor na C, não o contrário
cristianequeiroz1
eu tenho que fazer assim: A[i][j] = C[i]?
GustavoLaguna
Não… tenta entender melhor o post do thegoergen. =)
Voce está passando valores dos dois vetores A e B para o mesmo elemento de C.
cristianequeiroz1
Tentei fazer assim mais teria que imprimir um do lado do outro…
importjavax.swing.JOptionPane;classExercicio8{publicstaticvoidmain(Stringarg[]){intA[][]=newint[7][1];intB[][]=newint[7][1];intC[][]=newint[7][2];for(inti=0;i<7;i++){for(intj=0;j<1;j++){A[i][j]=Integer.parseInt(JOptionPane.showInputDialog("Digite o valor A ["+i+"] [ "+j+" ] "));}}for(inti=0;i<7;i++){for(intj=0;j<1;j++){B[i][j]=Integer.parseInt(JOptionPane.showInputDialog("Digite o valor B ["+i+"] [ "+j+" ] "));}}StringAC="";for(inti=0;i<7;i++){for(intj=0;j<1;j++){C[i][j]=A[i][j];AC+="C["+i+"]["+j+"]="+C[i][j]+"\n";}}StringBC="";for(inti=0;i<7;i++){for(intj=0;j<1;j++){C[i][j]=B[i][j];BC+="C["+i+"]["+j+"]="+C[i][j]+"\n";}}JOptionPane.showMessageDialog(null,AC);JOptionPane.showMessageDialog(null,BC);}}
thegoergen
Olhei melhor o código e reparei em algo: porque você usa matrizes para o A e B?? Se eles só tem uma “linha” mesmo… Pode Usar Vetor unidimensional:
Este cara já preenche completamente a matriz bidimensional.
Sendo a (1…2) e b (5…6) na tela vc terá:
Entre com o valor de 1,5
Entre com o valor de 1,6
Entre com o valor de 2,5
Entre com o valor de 2,6
E pronto!
cristianequeiroz1
Isso que eu consigo entender:
Como faço pra colocar na coluna 0 de C os valores de A…
C[0] = A[i]?
thegoergen
cristianequeiroz1:
Isso que eu consigo entender:
Como faço pra colocar na coluna 0 de C os valores de A…
C[0] = A[i]?
Isso mesmo!
GustavoLaguna
Da pra melhorar bastante esse código ainda…
importjavax.swing.JOptionPane;classExercicio8{publicstaticvoidmain(Stringarg[]){intA[]=newint[7];intB[]=newint[7];intC[][]=newint[7][2];for(inti=0;i<7;i++){A[i][j]=Integer.parseInt(JOptionPane.showInputDialog("Digite o valor A ["+i+"]"));}for(inti=0;i<7;i++){B[i][j]=Integer.parseInt(JOptionPane.showInputDialog("Digite o valor B ["+i+"]"));}for(inti=0;i<7;i++){C[i][0]=A[i];C[i][1]=B[i];}for(inti=0;i<7;i++){for(intj=0;j<2;j++){System.out.println("C["+i+"]["+j+"] = "+C[i][j]);}}}}
GustavoLaguna
thegoergen:
cristianequeiroz1:
Isso que eu consigo entender:
Como faço pra colocar na coluna 0 de C os valores de A…
C[0] = A[i]?
for (int i = 0; i < A.length; i++){
C[0][i] = A[i];
}
Acho que tem que inverter…
for (int i = 0; i < A.length; i++){
C[i][0] = A[i];
}
[/quote]
thegoergen
importjavax.swing.JOptionPane;classExercicio8{publicstaticvoidmain(Stringarg[]){intA[]=newint[7];intB[]=newint[7];intC[][]=newint[7][2];for(inti=0;i<7;i++){A[i][j]=Integer.parseInt(JOptionPane.showInputDialog("Digite o valor A ["+i+"]"));}for(inti=0;i<7;i++){B[i][j]=Integer.parseInt(JOptionPane.showInputDialog("Digite o valor B ["+i+"]"));}C[i][0]=A;C[i][1]=B;for(inti=0;i<7;i++){for(intj=0;j<2;j++){System.out.println("C["+i+"]["+j+"] = "+C[i][j]);}}}}
thegoergen
GustavoLaguna:
thegoergen:
cristianequeiroz1:
Isso que eu consigo entender:
Como faço pra colocar na coluna 0 de C os valores de A…
C[0] = A[i]?
for (int i = 0; i < A.length; i++){
C[0][i] = A[i];
}
Acho que tem que inverter…
for (int i = 0; i < A.length; i++){
C[i][0] = A[i];
}
[/quote]
Não precisa do FOR. Funciona setando direto o Array.
GustavoLaguna
C[i][0]=A;C[i][1]=B;
Certeza? Acho que isso não compila.
Voce está tentando colocar um array onde é esperado um int.
cristianequeiroz1
Nao consigo mandar imprimir… ai esta errado a atribuicao?
Olhem como esta:
importjavax.swing.JOptionPane;classExercicio8{publicstaticvoidmain(Stringarg[]){intA[]=newint[7];intB[]=newint[7];intC[][]=newint[7][2];for(inti=0;i<7;i++){Stringa=JOptionPane.showInputDialog(null,"Digite o valor A ["+i+"]");A[i]=Integer.parseInt(a);}for(inti=0;i<7;i++){Stringb=JOptionPane.showInputDialog(null,"Digite o valor B ["+i+"]");B[i]=Integer.parseInt(b);}for(inti=0;i<A.length;i++){C[i][0]=A[i];}for(inti=0;i<B.length;i++){C[0][i]=B[i];}Stringsaida="";for(inti=0;i<7;i++){for(intj=0;j<2;j++){saida+="C["+i+"]["+j+"]="+C[i][j]+"\n";}}JOptionPane.showMessageDialog(null,saida);}}
thegoergen
GustavoLaguna:
C[i][0] = A;
C[i][1] = B;
Certeza? Acho que isso não compila.
Voce está tentando colocar um array onde é esperado um int.
Não assim. Assim:
C[0]=A;C[1]=B;
Coloco um array de int onde é esperado um array de int. Testei antes, e funcionou.
jingle
GustavoLaguna:
C[i][0] = A;
C[i][1] = B;
Certeza? Acho que isso não compila.
Voce está tentando colocar um array onde é esperado um int.
opa editei por que vi mal estava olhando como se foce assim como thegoergen pos
C[0]=A;C[1]=B;
GustavoLaguna
thegoergen:
GustavoLaguna:
C[i][0] = A;
C[i][1] = B;
Certeza? Acho que isso não compila.
Voce está tentando colocar um array onde é esperado um int.
Não assim. Assim:
C[0]=A;C[1]=B;
Coloco um array de int onde é esperado um array de int. Testei antes, e funcionou.
acho que não é o ideal também, voce vai criar um array de 7 elementos onde era um array de 2.
é a mesma coisa que fazer
C[0]=newint[7];C[1]=newint[7];
GustavoLaguna
cristianequeiroz1:
Nao consigo mandar imprimir... ai esta errado a atribuicao?
Olhem como esta:
importjavax.swing.JOptionPane;classExercicio8{publicstaticvoidmain(Stringarg[]){intA[]=newint[7];intB[]=newint[7];intC[][]=newint[7][2];for(inti=0;i<7;i++){Stringa=JOptionPane.showInputDialog(null,"Digite o valor A ["+i+"]");A[i]=Integer.parseInt(a);}for(inti=0;i<7;i++){Stringb=JOptionPane.showInputDialog(null,"Digite o valor B ["+i+"]");B[i]=Integer.parseInt(b);}for(inti=0;i<A.length;i++){C[i][0]=A[i];}for(inti=0;i<B.length;i++){C[0][i]=B[i];}Stringsaida="";for(inti=0;i<7;i++){for(intj=0;j<2;j++){saida+="C["+i+"]["+j+"]="+C[i][j]+"\n";}}JOptionPane.showMessageDialog(null,saida);}}
E o que imprime errado?? Você que imprima em colunas?? Mais bonitinho?? Porque ficou certo aqui…
GustavoLaguna
Voce fez algo meio doido ai msm…
voce está atribuindo o array A na posição 0 várias vezes e atribuindo o array B na posição 1 várias vezes…
olha os posts denovo… acho que sua questão está respondida…
GustavoLaguna
thegoergen ,
a solução de colocar
C[0]=A;C[1]=B;
não faz sentido se voce quiser colocar os valores de A na coluna 0 de C e valores de B na coluna 1 de C.
Nesse caso voce está colocando os valores de A na linha 0 de C e valores de B na linha 1 de C.
Sendo que o array C só tem 2 colunas por linha e voce está inserindo 7 colunas em cada linha, não vai dar certo.
pense no exemplo, C[3][0].
O que vai imprimir?
cristianequeiroz1
Fica assim entao???
Vou printar a tela e mandar pra vcs!
importjavax.swing.JOptionPane;classExercicio8{publicstaticvoidmain(Stringarg[]){intA[]=newint[7];intB[]=newint[7];intC[][]=newint[7][2];for(inti=0;i<7;i++){Stringa=JOptionPane.showInputDialog(null,"Digite o valor A ["+i+"]");A[i]=Integer.parseInt(a);}for(inti=0;i<7;i++){Stringb=JOptionPane.showInputDialog(null,"Digite o valor B ["+i+"]");B[i]=Integer.parseInt(b);}C[0]=A;C[1]=B;Stringsaida="";for(inti=0;i<7;i++){for(intj=0;j<2;j++){saida+="C["+i+"]["+j+"]="+C[i][j]+"\n";}}JOptionPane.showMessageDialog(null,saida);}}
thegoergen
Cris!
Você está errando na hora de montar a String de saída, os FORS estão invertidos. Tenta isso aqui:
Mais eu preciso imprimir em coluna…
ele ta imprimindo so em linha o que eu tenho que mudar?
GustavoLaguna
GustavoLaguna:
Da pra melhorar bastante esse código ainda...
importjavax.swing.JOptionPane;classExercicio8{publicstaticvoidmain(Stringarg[]){intA[]=newint[7];intB[]=newint[7];intC[][]=newint[7][2];for(inti=0;i<7;i++){A[i][j]=Integer.parseInt(JOptionPane.showInputDialog("Digite o valor A ["+i+"]"));}for(inti=0;i<7;i++){B[i][j]=Integer.parseInt(JOptionPane.showInputDialog("Digite o valor B ["+i+"]"));}for(inti=0;i<7;i++){C[i][0]=A[i];C[i][1]=B[i];}for(inti=0;i<7;i++){for(intj=0;j<2;j++){System.out.println("C["+i+"]["+j+"] = "+C[i][j]);}}}}
Não testei o código, mas deve funcionar assim.
thegoergen
cristianequeiroz1:
Mais eu preciso imprimir em coluna…
ele ta imprimindo so em linha o que eu tenho que mudar?
Você vai ter quer ver isso melhor… Realmente o código que eu fiz tem 2 linhas e 7 colunas… você vai ter que trocar esses valores.
É um ótimo teste para ver se sua “lógica com matrizes” está boa.
[EDIT]
Mas uma dica, você vai ter que tirar aquela parte de colocar os vetores inteiros sobre a matriz…
Tente mais uma vez, se mesmo assim não conseguir, poste aqui de novo