Escreva um algoritmo que leia uma matriz de tamanho 3 x 3 e, ao final, imprima se esta matriz é ou não um quadrado mágico…
Fiz o programa mas ele não obedece a estrutura condicional para informar que o quadrado é mágico .
Segue código…
package matrizes;
/* Um quadrado mágico é uma matriz quadrada
em que a soma das suas linhas é igual
a soma das sua colunas e que também é
igual a soma da diagonal principal e da
diagonal secundária. A matriz abaixo é um
de quadrado mágico, pois a somatória, em todos os
casos, é igual a 15. Escreva um algoritmo que
leia uma matriz de tamanho 3 x 3 e, ao final, imprima
se esta matriz é ou não um quadrado mágico
*/
import java.util.Scanner;
public class Questao13 {
public static void main(String[] args) {
int[][] num = new int[3][3];
int somaLinha = 0, somaColuna = 0, somaDiagonal = 0;
int diagonal2 = 0;
Scanner input = new Scanner(System.in);
// SOMAR AS LINHAS
System.out.println("Informe os números:");
for (int i = 0; i < num.length; i++) {
for (int j = 0; j < num.length; j++) {
num[i][j] = input.nextInt();
somaLinha = somaLinha + num[i][j];
}
}
// SOMAR AS COLUNAS
for (int j = 0; j < num.length; j++) {
for (int i = 0; i < num.length; i++) {
somaColuna = somaColuna + num[j][i];
}
}
// SOMAR A DIAGONAL PRINCIPAL
for (int i = 0; i < num.length; i++) {
for (int j = 0; j < num.length; j++) {
if (i == j) {
somaDiagonal = somaDiagonal + num[i][j];
}
}
}
// SOMAR DIAGONAL INTERNA
for (int i = 0; i < num.length; i++) {
for (int j = num.length ; j > 0; j--) {
if (i == j) {
diagonal2 = diagonal2 + num[i][j];
}
}
}
if ((somaLinha == somaColuna) && (somaColuna == somaDiagonal) && (somaDiagonal == diagonal2)) {
System.out.println(" É um quadrado mágico!! ");
} else {
System.out.println(" Não é um quadrado mágico!! ");
}
}
}
Informe os números:
2
2
2
2
2
2
2
2
2
Não é um quadrado mágico!!
Alguém pode me ajudar?