#include void lematriz(int m[100][100], int *dm) { int i, j; printf("Digite a dimensão da matriz quadrada:"); scanf("%d", dm); printf("Digite os elementos da matriz: "); for (i = 0; i < *dm; i++) for (j = 0; j < *dm; j++) scanf("%d", &m[i][j]); } int ehquadradomagico(int m[100][100], int dm) { int i, j, soma, soma_diag_principal, soma_diag_secundaria; soma_diag_principal = 0; soma_diag_secundaria = 0; /* Verifica a soma das diagonais */ for (i = 0; i < dm; i++) { soma_diag_principal += m[i][i]; // soma elementos da diag principal soma_diag_secundaria += m[i][dm - 1- i]; // soma elementos da diag secundária } if (soma_diag_principal != soma_diag_secundaria) return 0; /* Verifica a soma das linhas */ for (i = 0; i < dm; i++) { soma = 0; for (j = 0; j < dm; j++) soma += m[i][j]; // soma elementos da linha i if (soma_diag_principal != soma) return 0; } /* Verifica a soma das colunas */ for (j = 0; j < dm; j++) { soma = 0; for (i = 0; i < dm; i++) soma += m[i][j]; // soma elementos da coluna j if (soma_diag_principal != soma) return 0; } return 1; } int main (void) { int i, dm, m[100][100]; lematriz(m, &dm); if(ehquadradomagico(m, dm)) printf("A matriz É um quadrado mágico!.\n"); else printf("A matriz NÃO é um quadrado mágico!.\n"); return 0; }