Skip to content

Instantly share code, notes, and snippets.

@fraterblack
Created July 4, 2017 13:18
Show Gist options
  • Save fraterblack/c1e61a12f4672d960299288a6e89a9ec to your computer and use it in GitHub Desktop.
Save fraterblack/c1e61a12f4672d960299288a6e89a9ec to your computer and use it in GitHub Desktop.
#include<stdio.h>
#include<conio.h>
#include<locale.h>
main () {
setlocale(LC_ALL, "Portuguese");
int i, j,
controleJ,
somaDiagonalPrincipal = 0,
somaDiagonalSecundaria = 0,
tamQuadrado = 3; //Tamanho do quadrado
int matriz[tamQuadrado][tamQuadrado],
somaLinhas[tamQuadrado],
somaColunas[tamQuadrado];
bool eMagico = true;
for (i = 0; i < tamQuadrado; i++) {
for (j = 0; j < tamQuadrado; j++) {
printf("Informe número posição %d_%d: ", i, j);
scanf("%d", &matriz[i][j]);
}
}
//Imprime Matriz
printf("\nMatriz\n");
for (i = 0; i < tamQuadrado; i++) {
for (j = 0; j < tamQuadrado; j++) {
printf("%d\t", matriz[i][j]);
}
printf("\n");
}
//Somas
controleJ = (tamQuadrado - 1);
for (i = 0; i < tamQuadrado; i++) {
somaLinhas[i] = 0;
for (j = 0; j < tamQuadrado; j++) {
//Diagonal Principal
if (i == j) {
somaDiagonalPrincipal += matriz[i][j];
}
//Diagonal Secundária
if (j == controleJ) {
somaDiagonalSecundaria += matriz[i][j];
}
//Soma dos valores das linhas
somaLinhas[i] += matriz[i][j];
//Soma dos valores das colunas
if (i == 0) { //Aplica um valor default para coluna
somaColunas[j] = 0;
}
somaColunas[j] += matriz[i][j];
}
controleJ--;
}
//Valida as somas das linhas
for (i = 0; i < tamQuadrado; i++) {
if (i > 0 && somaLinhas[i] != somaLinhas[(i - 1)]) {
eMagico = false;
break;
}
if (i > 0 && somaColunas[i] != somaColunas[(i - 1)]) {
eMagico = false;
break;
}
}
//Se a somas das colunas não forem iguais as somas das diagonais, não é mágica
if (somaLinhas[0] != somaDiagonalPrincipal || somaColunas[0] != somaDiagonalSecundaria) {
eMagico = false;
}
if (eMagico) {
printf("\nA matriz quadrada é Magic!!!");
} else {
printf("\nA matriz quadrada não é mágica");
}
getch();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment