SOLUCION EJERCICIO 4Bueno, ahi va el código. A ver si nos animamos y resolvemos los demás. :lol:
#include <stdio.h>
#define N 11 // definimos el tama?o de N de la matriz(NxN))
int main(int argc, char **argv){
int matriz[N][N];
int suma,medio,contador,j,i,k;
//Inicializamos la matriz con ceros
for(i = 0; i<N;i++){
for(j = 0; j<N;j++){
matriz[i][j] = 0;
}
}
//Generamos la matriz m?gica
contador = 1;
medio = N/2;
i = 0;
j = medio;
matriz[i][j]=contador++;
for(k = 1; k<(N*N); k++){
i = ((i - 1) + N) % N; //elemento superior-izquierdo del actual
j = (j + 1) % N;
if(matriz[i][j]==0)
matriz[i][j]=contador++;
else{
i = (i + 2) % N; //elemento inferior al actual
j = ((j - 1) + N) % N;
matriz[i][j]=contador++;
}
}
printf("\n\n");
//Visualizamos la matriz
printf(" *** MATRIZ MAGICA DE %i x %i ***\n\n", N,N);
for(i = 0;i<N;i++){
printf(" ");
suma = 0;
for(j = 0;j<N;j++){
if(matriz[i][j] < 10){
suma = suma + matriz[i][j];
printf("| %i|",matriz[i][j]);
}
else{
suma = suma + matriz[i][j];
printf("|%i|",matriz[i][j]);
}
}
printf(" %i\n",suma);
}
printf(" ");
for(j=0;j<N;j++){
suma=0;
for(i=0;i<N;i++){
suma = suma + matriz[i][j];
}
printf(" %i ",suma);
}
}