Created
July 4, 2017 13:18
-
-
Save fraterblack/c1e61a12f4672d960299288a6e89a9ec to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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