Eu fiz um programa básico em java (utilizando apenas main), no qual o usúario preenche uma matriz 3x3 com números inteiros e a seguir o programa troca a diagonal primaria pela secundária. Ex:
|1| |2| |3|
|4| |5| |6|
|7| |8| |9|
No caso o “1, 5 e 9” vão para as posições de “3, 5 e 7” e vice-versa, respectivamente.
O programa usa 6 for. O primeiro deles é para inserir os dados na matriz.
QUESTÃO: quando eu compilo e coloco para rodar (no JCreator), o programa não é rodado, aparece logo a mensagem “Process completed”.
publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);inti,j;int[][]m1=newint[2][2];int[]aux=newint[2];// VETOR ONDE FICARÃO OS NUMEROS DA DIAGONAL INVERSAint[]aux2=newint[2];// VETOR ONDE FICARÃO OS NUMEROS DA DIAGONAL DIRETA // LEITURA DOS NUMEROSfor(i=0;i>2;i++){for(j=0;j>2;j++){System.out.println("Digite um numero: ");m1[i][j]=sc.nextInt();}}// PASSA OS VALORES DA DIAGONAL INVERSA PARA UM VETOR AUXILIAR for(i=0;i==2;i++){for(j=2;j==0;j--){aux[i]=m1[i][j];}}// PASSA OS VALORES DA DIAGONAL DIRETA PARA UM VETOR AUXILIAR for(i=0;i==2;i++){for(j=0;j==2;j++){if(i==j){aux2[i]=m1[i][j];}}}// PASSA OS VALORES DA DIAGONAL INVERSA P/ DIAGONAL DIRETAfor(i=0;i==2;i++){for(j=0;j==2;j++){if(i==j){m1[i][j]=aux[i];}}}// PASSA OS VALORES DA DIAGONAL DIRETA P/ DIAGONAL INVERSA for(i=0;i==2;i++){for(j=2;j==0;j--){m1[i][j]=aux2[i];}}// ESCREVE A NOVA MATRIZfor(i=0;i==2;i++){for(j=0;j==2;j++){System.out.println(m1[i][j]);}System.out.println("");}}
}
marcosharbs
JCreator?
Pq vc nao baixa uma IDE?
baixa o eclipse
marcosharbs
ae cara eu dei uma olhada nesse seu codigo e estava cheio de erros de lógica, dei uma corrigida aqui vo posta o código pra vc abaixo:
importjavax.swing.JOptionPane;publicclassteste{publicstaticvoidmain(String[]args){int[][]m1=newint[3][3];int[]diagDir=newint[3];int[]diagInv=newint[3];int[]diagInv2=newint[3];// LEITURA DOS NUMEROSfor(inti=0;i<3;i++){for(intj=0;j<3;j++){m1[i][j]=Integer.parseInt(JOptionPane.showInputDialog(null,"Digite um número: "));}}// PASSA OS VALORES DA DIAGONAL INVERSA PARA UM VETOR AUXILIARdiagDir[0]=m1[0][0];diagDir[1]=m1[1][1];diagDir[2]=m1[2][2];// PASSA OS VALORES DA DIAGONAL DIRETA PARA UM VETOR AUXILIARdiagInv[0]=m1[0][2];diagInv[1]=m1[1][1];diagInv[2]=m1[2][0];// DUPLICA A DIAGONAL INVERSA PARA NAO PERDER OS VALORES QDO FOREM SER TROCADOSdiagInv2=diagInv;// PASSA OS VALORES DA DIAGONAL DIREITA P/ DIAGONAL INVERSAdiagInv=diagDir;// PASSA OS VALORES DA DIAGONAL INVERSAP/ DIAGONAL DIREITAdiagDir=diagInv2;//FORMA A NOVA MATRIZm1[0][0]=diagDir[0];m1[1][1]=diagDir[1];m1[2][2]=diagDir[2];m1[0][2]=diagInv[0];m1[2][0]=diagInv[2];// ESCREVE A NOVA MATRIZStringnovaMatriz="";for(inti=0;i<3;i++){for(intj=0;j<3;j++){novaMatriz+=m1[i][j]+" ";}novaMatriz+="\n";}System.out.println(novaMatriz);}}
Vlw!!
nascinho
OBS:
A MATRIZ É 3x3
NÃO SERIA [2][2], PQ EM JAVA O PRIMEIRO NUMERO É “0”?
MAS MTO OBG
marcosharbs
nao cara vc ta errado
sim a matriz vai da posção 0 ate a posiçao 2 isso está correto, agora qdo vc cria uma matriz por exemplo:
int[][]m1=newint[3][3];
new int[3][3] etsa parte aqui quer dizer qtas posicoes a matriz ira ter ou seja essa matriz irá ter 3 posicoes e seus indices vao de 0 ate 2 entendeu?
quando vc define ali vc diz o tamanho da matriz, mas ai qdo vc quer acessar o indice dessa matriz ai deve se lembrar que o primeiro indice ém 0.