Estou tentando resolver uma questão onde o algoritmo tem que ler uma matriz e imprimir uma outra matriz,
conforme mostrado a seguir :
1 2 3 7 4 1
4 5 6 8 5 2
7 8 9 9 6 3
package matrizes;
import java.util.Scanner;
/* Criar um algoritmo que leia uma matriz e imprima uma outra matriz,
conforme mostrado a seguir :
1 2 3 7 4 1
4 5 6 8 5 2
7 8 9 9 6 3
**/
public class Questao09 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[][] num = new int[3][3];
int aux1 = 0;
int aux2 = 0;
for (int i = 0; i < num.length; i++) {
System.out.println(i + " vetor ");
for (int j = 0; j < num[i].length; j++) {
num[i][j] = input.nextInt();
}
}
for (int i = 0; i < num.length; i++) {
for (int j = 0; j < num[i].length; j++) {
aux1 = num[i][j];
aux2 = num[i][2];
num[i][2] = aux1;
num[i][j] = aux2;
}
}
for (int i = 0; i < num.length; i++) {
for (int j = 0; j < num[i].length; j++) {
System.out.print(num[i][j] + " ");
}
System.out.println(" ");
}
}
}
Fiz esse código a após várias tentativas o porgrama não exibe a matriz como deveria. Alguem poderia me ajudar?
Faz um teste de mesa do seu algoritmo que fica fácil achar o erro.
1 curtida
1 : Criei uma matriz para armazenar os indices invertidos
2: Troquei os numeros com o auxilio da variavel aux as posições 0 e 2.
Foi a melhor solução que encontrei mas aceito sugestões que poderiam melhorar o algoritmo.
Segue código…
package matrizes;
import java.util.Scanner;
/* Criar um algoritmo que leia uma matriz e imprima uma outra matriz,
conforme mostrado a seguir :
1 2 3 7 4 1
4 5 6 8 5 2
7 8 9 9 6 3
**/
public class Questao09 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[][] num = new int[3][3];
int[][] inverso= new int [3][3];
int aux = 0;
for (int i = 0; i < num.length; i++) {
System.out.println(i + " vetor ");
for (int j = 0; j < num[i].length; j++) {
num[i][j] = input.nextInt();
}
}
for (int i = 0; i < num.length; i++) {
for (int j = 0; j < num[i].length; j++) {
System.out.print(num[i][j] + " ");
}
System.out.println(" ");
}
for (int i = 0; i < num.length; i++) {
for (int j = 0; j < num[i].length; j++) {
inverso[j][i] = num[i][j];
}
}
System.out.println(" ");
System.out.println(" Matriz invertida ");
System.out.println(" ");
for (int i = 0; i < num.length; i++) {
for (int j = 0; j < num[i].length; j++) {
aux=inverso[i][2];
inverso[i][2]= inverso[i][0];
inverso[i][0]= aux;
System.out.print(inverso[i][j] + " ");
}
System.out.println(" ");
System.out.println(" ");
}
}
}
0 vetor
1
2
3
1 vetor
4
5
6
2 vetor
7
8
9
1 2 3
4 5 6
7 8 9
Matriz invertida
7 4 1
8 5 2
9 6 3
@staroski obrigado pela dica , percebi que estou com dificudades em fazer teste de mesa e debugar . Vou continuar praticando, se tiver alguma sugestão para uma melhor compreensão ficarei muito grato
1 curtida
Isso aí é só questão de praticar.
No caso desse exercício está bacana, são matrizes pequenas então é mais prático/legível usar uma matriz auxiliar para as transformações.
1 curtida