#include <stdio.h>
void lerMatriz(int tam, int mat[tam][tam]) {
int i, j;
for (i = 0; i < tam; i++) {
for (j = 0; j < tam; j++) {
}
}
}
void mostraMatriz(int tam, int mat[tam][tam]) {
int i, j;
for (i = 0; i < tam; i++) {
for (j = 0; j < tam; j++) {
}
}
}
int somaDiagonalPrincipal(int tam, int mat[tam][tam]) {
int i, soma = 0;
for (i = 0; i < tam; i++) {
soma += mat[i][i];
}
return soma;
}
int somaDiagonalSecundaria(int tam, int mat[tam][tam]) {
int i, soma = 0;
for (i = 0; i < tam; i++) {
soma += mat[i][tam-i-1];
}
return soma;
}
void mostraVetor(int vet[], int tam) {
int i;
for (i = 0; i < tam; i++) {
}
}
void somaLinhas(int tam, int mat[tam][tam], int vet[]) {
int i, j;
for (i = 0; i < tam; i++) {
vet[i] = 0;
for (j = 0; j < tam; j++) {
vet[i] += mat[i][j];
}
}
}
void somaColunas(int tam, int mat[tam][tam], int vet[]) {
int i, j;
for (j = 0; j < tam; j++) {
vet[j] = 0;
for (i = 0; i < tam; i++) {
vet[j] += mat[i][j];
}
}
}
int testaIgualidadeVetor(int vet[], int tam) {
int i;
for (i = 1; i < tam; i++) {
if (vet[i] != vet[i-1]) {
return 0;
}
}
return 1;
}
int main(void) {
int n;
int mat[n][n];
lerMatriz(n, mat);
mostraMatriz(n, mat);
int somaDP = 0, somaDS = 0;
somaDP = somaDiagonalPrincipal(n,mat); //soma da diagonal principal
somaDS = somaDiagonalSecundaria(n,mat); //soma da diagonal secundaria
//soma linhas
int vetL[n];
somaLinhas(n, mat, vetL);
printf("\nSoma das linhas: "); mostraVetor(vetL, n);
//soma colunas
int vetC[n];
somaColunas(n, mat, vetC);
printf("\nSoma das colunas: "); mostraVetor(vetC, n);
printf("\nSoma diagonal principal %i e secundaria %i\n", somaDP
, somaDS
);
int testaL, testaC;
testaL = testaIgualidadeVetor(vetL, n);
testaC = testaIgualidadeVetor(vetC, n);
if (testaL && testaC && somaDP == somaDS && somaDP == vetL[0]) {
} else {
printf("Quadrado nao magico"); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp2b2lkIGxlck1hdHJpeihpbnQgdGFtLCBpbnQgbWF0W3RhbV1bdGFtXSkgewoJaW50IGksIGo7Cglmb3IgKGkgPSAwOyBpIDwgdGFtOyBpKyspIHsKCQlmb3IgKGogPSAwOyBqIDwgdGFtOyBqKyspIHsKCQkJc2NhbmYoIiVpIiwgJm1hdFtpXVtqXSk7CgkJfQoJfQp9Cgp2b2lkIG1vc3RyYU1hdHJpeihpbnQgdGFtLCBpbnQgbWF0W3RhbV1bdGFtXSkgewoJaW50IGksIGo7Cglmb3IgKGkgPSAwOyBpIDwgdGFtOyBpKyspIHsKCQlmb3IgKGogPSAwOyBqIDwgdGFtOyBqKyspIHsKCQkJcHJpbnRmKCIlaSAiLCBtYXRbaV1bal0pOwoJCX0KCQlwcmludGYoIlxuIik7Cgl9Cn0KCmludCBzb21hRGlhZ29uYWxQcmluY2lwYWwoaW50IHRhbSwgaW50IG1hdFt0YW1dW3RhbV0pIHsKCWludCBpLCBzb21hID0gMDsKCWZvciAoaSA9IDA7IGkgPCB0YW07IGkrKykgewoJCXNvbWEgKz0gbWF0W2ldW2ldOwoJfQoJcmV0dXJuIHNvbWE7Cn0KCmludCBzb21hRGlhZ29uYWxTZWN1bmRhcmlhKGludCB0YW0sIGludCBtYXRbdGFtXVt0YW1dKSB7CglpbnQgaSwgc29tYSA9IDA7Cglmb3IgKGkgPSAwOyBpIDwgdGFtOyBpKyspIHsKCQlzb21hICs9IG1hdFtpXVt0YW0taS0xXTsKCX0KCXJldHVybiBzb21hOwp9Cgp2b2lkIG1vc3RyYVZldG9yKGludCB2ZXRbXSwgaW50IHRhbSkgewoJaW50IGk7Cglmb3IgKGkgPSAwOyBpIDwgdGFtOyBpKyspIHsKCQlwcmludGYoIiVpICIsIHZldFtpXSk7Cgl9Cn0KCnZvaWQgc29tYUxpbmhhcyhpbnQgdGFtLCBpbnQgbWF0W3RhbV1bdGFtXSwgaW50IHZldFtdKSB7CglpbnQgaSwgajsKCWZvciAoaSA9IDA7IGkgPCB0YW07IGkrKykgewoJCXZldFtpXSA9IDA7CgkJZm9yIChqID0gMDsgaiA8IHRhbTsgaisrKSB7CgkJCXZldFtpXSArPSBtYXRbaV1bal07CgkJfQoJfQp9Cgp2b2lkIHNvbWFDb2x1bmFzKGludCB0YW0sIGludCBtYXRbdGFtXVt0YW1dLCBpbnQgdmV0W10pIHsKCWludCBpLCBqOwoJZm9yIChqID0gMDsgaiA8IHRhbTsgaisrKSB7CgkJdmV0W2pdID0gMDsKCQlmb3IgKGkgPSAwOyBpIDwgdGFtOyBpKyspIHsKCQkJdmV0W2pdICs9IG1hdFtpXVtqXTsKCQl9Cgl9Cn0KCmludCB0ZXN0YUlndWFsaWRhZGVWZXRvcihpbnQgdmV0W10sIGludCB0YW0pIHsKCWludCBpOwoJZm9yIChpID0gMTsgaSA8ICB0YW07IGkrKykgewoJCWlmICh2ZXRbaV0gIT0gdmV0W2ktMV0pIHsKCQkJcmV0dXJuIDA7CgkJfQoJfQoJcmV0dXJuIDE7Cn0KCmludCBtYWluKHZvaWQpIHsKCWludCBuOwoJc2NhbmYoIiVpIiwgJm4pOwoJaW50IG1hdFtuXVtuXTsKCQoJbGVyTWF0cml6KG4sIG1hdCk7Cgltb3N0cmFNYXRyaXoobiwgbWF0KTsKCQoJaW50IHNvbWFEUCA9IDAsIHNvbWFEUyA9IDA7Cglzb21hRFAgPSBzb21hRGlhZ29uYWxQcmluY2lwYWwobixtYXQpOyAgLy9zb21hIGRhIGRpYWdvbmFsIHByaW5jaXBhbAoJc29tYURTID0gc29tYURpYWdvbmFsU2VjdW5kYXJpYShuLG1hdCk7IC8vc29tYSBkYSBkaWFnb25hbCBzZWN1bmRhcmlhCgoJLy9zb21hIGxpbmhhcwoJaW50IHZldExbbl07Cglzb21hTGluaGFzKG4sIG1hdCwgdmV0TCk7CglwcmludGYoIlxuU29tYSBkYXMgbGluaGFzOiAiKTsKCW1vc3RyYVZldG9yKHZldEwsIG4pOwoKCS8vc29tYSBjb2x1bmFzCglpbnQgdmV0Q1tuXTsKCXNvbWFDb2x1bmFzKG4sIG1hdCwgdmV0Qyk7CglwcmludGYoIlxuU29tYSBkYXMgY29sdW5hczogIik7Cgltb3N0cmFWZXRvcih2ZXRDLCBuKTsKCQoJcHJpbnRmKCJcblNvbWEgZGlhZ29uYWwgcHJpbmNpcGFsICVpIGUgc2VjdW5kYXJpYSAlaVxuIiwgc29tYURQLCBzb21hRFMpOwoKCWludCB0ZXN0YUwsIHRlc3RhQzsKCXRlc3RhTCA9IHRlc3RhSWd1YWxpZGFkZVZldG9yKHZldEwsIG4pOwoJdGVzdGFDID0gdGVzdGFJZ3VhbGlkYWRlVmV0b3IodmV0Qywgbik7CgoJaWYgKHRlc3RhTCAmJiB0ZXN0YUMgJiYgc29tYURQID09IHNvbWFEUyAmJiBzb21hRFAgPT0gdmV0TFswXSkgewoJCXByaW50ZigiUXVhZHJhZG8gbWFnaWNvIik7Cgl9IGVsc2UgewoJCXByaW50ZigiUXVhZHJhZG8gbmFvIG1hZ2ljbyIpOwoJfQoKCXJldHVybiAwOwp9Cg==