victorialais

verifica se matriz é quadrado magico

Oct 2nd, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.04 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main( )
  4. {
  5.    int linhas,colunas, i, j;
  6.    int somaDP, somaDS, calculaSD, somaLinhas, somaColunas;
  7.  
  8.    //Inicialização das variáveis
  9.    somaDP = 0; // soma da diagonal principal
  10.    somaDS = 0; // soma da diagonal secundária
  11.    int somainicial=0; //soma inicial de cada linha da matriz
  12.    int verdadeiro=1; //verifica se a matriz e um quadrado mágico
  13.  
  14.    /*Entrar com a dinensão da matriz desejada*/
  15.    printf("Entre com o numero de linhas: ");
  16.    scanf("%d",&linhas);
  17.    printf("Entre com o numero de colunas: ");
  18.    scanf("%d",&colunas);
  19.    /*declaração das matrizes que serão usadas no programa*/
  20.    int mat1[linhas][colunas];
  21.  
  22.        /*laço de repetição para entrar com os valores da matriz 1*/
  23.        for (i=0; i<linhas; i++)
  24.          for(j=0; j<colunas; j++)
  25.          {
  26.          printf(" Entre com os elementos da matriz 1 [%d][%d]:",i+1,j+1);
  27.          scanf("%d",&mat1[i][j]);
  28.          }      
  29.  
  30.               //somando a 1 coluna  
  31.               for (i=0; i<colunas; i++)
  32.               somainicial +=mat1[i][0]; //somaInicial
  33.               printf("\nsoma da coluna 1 %d\n\n",somainicial);
  34.  
  35.               //testando as linhas
  36.               for (i=0; i<linhas; i++){
  37.                   somaLinhas=0;
  38.                   for(j=0; j<colunas; j++) {
  39.                       somaLinhas+= mat1[0][j];
  40.                   }  
  41.                   if(somaLinhas!=somainicial)
  42.                       verdadeiro=0;
  43.               }
  44.  
  45.               //testando as colunas
  46.               for (i=0; i<colunas; i++){
  47.                   somaColunas=0;
  48.                   for(j=0; j<colunas; j++) {
  49.                       somaColunas+= mat1[i][0];
  50.                   }  
  51.                   if(somaColunas!=somainicial)
  52.                       verdadeiro=0;
  53.               }
  54.  
  55.               //testar a Diagonal principal
  56.                   for (i=0; i<colunas; i++){
  57.                   somaDP=0;
  58.                   for(j=0; j<colunas; j++) {
  59.  
  60.                            if (i==j)
  61.                            somaDP += mat1[i][j];
  62.                    }  
  63.                   if(somaDP!=somainicial)
  64.                       verdadeiro=0;
  65.               }
  66.                //testar a Diagonal secundária
  67.               for (i=0; i<colunas; i++){
  68.                   somaDS=0;
  69.                   for(j=colunas-1; j>-1; j--) {
  70.  
  71.  
  72.                            somaDS += mat1[i][j];
  73.  
  74.                     //  somaColunas+= mat1[i][0];
  75.                   }  
  76.                   if(somaDS!=somainicial)
  77.                       verdadeiro=0;
  78.               }
  79.  
  80.           /*Mostra a matriz 1 criada*/
  81.           if(verdadeiro==1)
  82.           printf("\n\nA matriz 1 criada eh quadrado magico \n\n");
  83.           else
  84.           printf("\n\nA matriz 1 criada nao eh quadrado magico \n\n");
  85.  
  86.  
  87.  
  88.             for (i=0; i<linhas; i++)
  89.             {
  90.                for(j=0; j<colunas;j++)
  91.                printf("%3.d\t",mat1[i][j]);
  92.                printf("\n\n");
  93.             }
  94.               printf("\n\n\n");
  95.              
  96.              return 0;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment