Desenvolver um programa que dada uma matriz qualquer de n linhas e m colunas dizer se a mesma e um quadrado mágico.
Lembrando que em 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.
E o programa não pode ser feito utilizando alocação dinâmica
Segue o que tentei fazer:
#include <stdio.h>
#include <stdlib.h>
int main( )
{
int linhas,colunas, i, j;
int somaDP, somaDS, calculaSD, somaLinhas, somaColunas;
//Inicialização das variáveis
somaDP = 0;
somaDS = 0;
calculaSD = 0;
somaLinhas = 0;
somaColunas = 0;
/*Entrar com a dminsão da matriz desejada*/
printf("Entre com o numero de linhas: ");
scanf("%d",&linhas);
printf("Entre com o numero de colunas: ");
scanf("%d",&colunas);
/*declaração das matrizes que serão usadas no programa*/
int mat1[linhas][colunas];
/*laço de repetição para entrar com os valores da matriz 1*/
for (i=0; i<linhas; i++)
for(j=0; j<colunas; j++)
{
printf(" Entre com os elementos da matriz 1 [%d][%d]:",i+1,j+1);
scanf("%d",&mat1[i][j]);
}
/*laço para somar as linhas*/
for (i=0; i<linhas; i++)
for(j=0; j<colunas; j++)
{
somaLinhas = somaLinhas + mat1[i][j];
somaColunas += somaColunas + mat1[i][j];
//condições
if (i==j)
somaDP += mat1[i][j];
if(j=i-2)
somaDS=+mat1[i][j];
}
//verifica se a soma é igual
if (somaDP == somaDS && somaLinhas == somaColunas)
printf("E quadrado");
else if (somaDP!= somaDS)
printf("não é quadrado");
/*Mostra a matriz 1 criada*/
printf("\n\nA matriz 1 criada é: \n\n");
for (i=0; i<linhas; i++)
{
for(j=0; j<colunas;j++)
printf("%3.d\t",mat1[i][j]);
printf("\n\n");
}
printf("\n\n\n");
getch();
return 0;
}
O programa da erro de execução quando vai imprimir a matriz e não mostra se e um quadrado magico.
Pergunta
RS25
Desenvolver um programa que dada uma matriz qualquer de n linhas e m colunas dizer se a mesma e um quadrado mágico.
Lembrando que em 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.
E o programa não pode ser feito utilizando alocação dinâmica
Segue o que tentei fazer:
O programa da erro de execução quando vai imprimir a matriz e não mostra se e um quadrado magico.
Alguém poderia ajudar?
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.