// Ejericio 2 :Un cuadrado mágico es aquel en donde la suma de los números de cada fila, de cada columna y de // la diagonal siempre son iguales. Escribir módulos para obtener las sumas por fila, por columna y de la // diagonal de un cuadrado. Luego escribir un programa donde se ingresa un cuadrado y determina si es //mágico. #include <stdio.h> #include <stdlib.h> int sumaFila(int a[10][10],int i,int n); int sumaColumna(int a[10][10],int j, int n); int sumaDiagonal(int a[10][10],int n); void cargar(int a[10][10], int *n); typedef enum {Falso, Verdadero} booleano; main(){ booleano porFila, porColumna, porDiagonal; int i,j,n; int sFila; int sCol; int sDiag; int cuadrado[10][10]; cargar(cuadrado, &n); sDiag = sumaDiagonal(cuadrado,n); sFila = sumaFila(cuadrado,0,n); if (sDiag = sFila){ porFila=Verdadero; i=1; while(i<n && porFila==Verdadero) { if (sumaFila(cuadrado,i,n) != sFila) porFila=Falso; else i++; } if (porFila==Verdadero) { sCol = sumaColumna(cuadrado,0,n); porColumna=Verdadero; j=1; while(j<n && porColumna==Verdadero) { if (sumaColumna(cuadrado,j,n) != sCol) porColumna=Falso; else j++; } if (porColumna==Verdadero) printf("El cuadrado es mágico"); else printf("El cuadrado NO es magico"); } } else printf("El cuadrado NO es magico"); system("Pause"); } int sumaFila(int a[10][10], int i,int n){ int suma,j; suma = 0; for (j=0; j<n; j++) suma=suma+a[i][j]; return(suma); } int sumaColumna(int a[10][10], int j,int n) { int suma,i; suma = 0; for (i=0; i<n; i++) suma=suma+a[i][j]; return(suma); } int sumaDiagonal(int a[10][10], int n) { int suma; int i,j; suma = 0; for (i=0; i<n; i++) suma=suma+a[i][i]; return(suma); } void cargar(int a[10][10], int *n) { int i,j,dim; printf("Ingrese dimension del cuadrado:"); scanf("%i",&dim); printf("Ingrese el cuadrado por filas"); for(i=0; i<dim; i++) for(j=0; j<dim; j++) { printf("\ncuadrado[%i,%i]=",i,j); scanf("%i",&a[i][j]); } *n=dim; }