Buscar

Pessoal alguém pode me ajudar com esta questão ?

Dizemos  que  uma  matriz  quadrada  inteira  é  um  quadrado  mágico  se  a  soma  dos elementos de cada linha, a soma dos elementos de cada coluna e a soma dos elementos das  diagonais  principal  e  secundária  são  todas  iguais.  Dada  uma  matriz  quadrada dimensão MxM,verifique se ela é um quadrado mágico através de um algoritmo. Exemplo de matriz quadrado mágico?

💡 3 Respostas

User badge image

Felipe Macedo

Sofrir mas conseguir.

 

#include <stdio.h>

#include <stdlib.h>

int main() {

       int i, j, n, soma, soma2, ** mat;

       printf("Digite a ordem da matriz, numero de colunas MxM 3x3 conforme ex:\n");

       scanf("%d", &n);

       while (n < 1) {

             printf("Digite novamente a ordem da matriz:\n");

             scanf("%d", &n);

       }

       mat = (int**)malloc(sizeof(int*) * n);

       if (mat == NULL) {

             printf("Problema na alocacao da matriz\n");

             return(-1);

       }

       for (i = 0; i < n; i++) {

             mat[i] = (int*)malloc(sizeof(int) * n);

             if (mat[i] == NULL) {

                    printf("Problema na alocacao da matriz\n");

                    return(-1);

             }

       }

       printf("Digite o elementos da matriz ex 8 0 7:\n");

       for (i = 0; i < n; i++) {

             for (j = 0; j < n; j++) {

                    scanf("%d", &(mat[i][j]));

             }

       }

       soma = 0;

       for (j = 0; j < n; j++) {

             soma = soma + mat[0][j];

       }

       for (i = 1; i < n; i++) {

             soma2 = 0;

             for (j = 0; j < n; j++) {

                    soma2 = soma2 + mat[i][j];

             }

 

             if (soma != soma2) {

                    printf("A matriz nao e um quadrado magico\n");

                    return(1);

             }

       }

       for (j = 0; j < n; j++) {

             soma2 = 0;

             for (i = 0; i < n; i++) {

                    soma2 = soma2 + mat[i][j];

             }

 

             if (soma != soma2) {

                    printf("A matriz nao e um quadrado magico\n");

                    return(1);

             }

       }

       soma2 = 0;

       for (i = 0; i < n; i++) {

             soma2 = soma2 + mat[i][i];

       }

       if (soma != soma2) {

             printf("A matriz nao e um quadrado magico\n");

             return(1);

       }

       soma2 = 0;

       for (i = 0; i < n; i++) {

             soma2 = soma2 + mat[i][n - (i + 1)];

       }

       if (soma != soma2) {

             printf("A matriz nao e um quadrado magico\n");

             return(1);

       }

       printf("A matriz e um quadrado magico\n");

       for (i = 0; i < n; i++) {

             free(mat[i]);

             mat[i] = NULL;

       }

       free(mat);

       mat = NULL;

       return(1);

}

 

 

Achei na net o codigo meritos não são meus. 

2
Dislike0
User badge image

Felipe Macedo

No aguardo tambem.

0
Dislike0
User badge image

Andre Smaira

O código será:

#include

#include

int main () {

int i, j,lin,col;

printf ("Digite as dimensoes da matriz:\n");

scanf ("%d %d", &lin, &col);

int matriz[lin][col], somalin[col], somacol[lin],somadiag1=0, somadiag2=0, aux=0;

printf ("Digite os elementos: \n");

for (i=0; i

for (j=0; j

scanf ("%d", &matriz[j]);

}

}

for (i=0; i

for (j=0; j

aux += matriz [j];

}

somalin = aux;

aux = 0;

}

for (i=0; i

for (j=0; j

aux += matriz [j];

}

somacol = aux;

aux = 0;

}

for (i=0; i

aux += matriz ;

somadiag1 += aux;

aux = 0;

}

j = 0;

for (i=col - 1; i<=0; i--) {

aux += matriz [j];

somadiag2 += aux;

aux = 0;

j++;

}

if (somadiag1 != somadiag2){

printf ("Nao eh quadrado magico!\n");

return 0;

}

for (i=0; i

if (somalin =! somacol){

printf ("Nao eh quadrado magico!\n");

return 0;

}

}

if (somalin[0] != somadiag1){

printf ("Nao eh quadrado magico!\n");

return 0;

}

printf ("A matriz é um quadrado magico!\n");

system ("PAUSE");

return 0;

}

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais

Outros materiais