elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Aporte: Cuadrado Mágico de orden impar
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Aporte: Cuadrado Mágico de orden impar  (Leído 12,347 veces)
dato000


Desconectado Desconectado

Mensajes: 3.034



Ver Perfil
Aporte: Cuadrado Mágico de orden impar
« en: 27 Julio 2012, 02:33 am »

Buenas les dejo un ejercicio que hice para matar el tiempo, debo confesar que me ayude de lo que encontre de la wikipedia sobre el articulo del cuadrado mágico, Cuadrado Mágico.

Lo dejo por aquí tal vez alguien lo necesite, aunque lo hice más para tratar de aprender un poco sobre estos temas.

Código
  1. /*
  2.     Jueves 26 de Julio de 2012
  3.     Cuadrado Mágico
  4.    
  5.     Escribir un programa que visualice su cuadrado mágico de orden impar n comprendido entre
  6.     3 y 11; el usuario debe elegir el valor de n. Un cuadrado mágico se compone de números enteros
  7.     comprendidos entre 1 y n. los números que figuran en cada fila, columna y diagonal son iguales.
  8.    
  9.     Ejemplo:
  10.                 8   1   6
  11.                 3   5   7
  12.                 4   9   2
  13. */
  14.  
  15. #include <stdio.h>
  16. #include <stdlib.h>
  17.  
  18. #define MAX 11
  19.  
  20. void generar(int a[][MAX], int *max);
  21.  
  22. int main()
  23. {
  24.    printf("CUADRADO MAGICO\n");
  25.    int n;
  26.    int arr[MAX][MAX];
  27.    generar(arr, &n);
  28.  
  29.    getchar();
  30.    return 0;
  31. }
  32.  
  33. void generar(int a[][MAX], int *max){
  34.  
  35.  
  36.  int i, j, n, x;
  37.  int contador = 1;
  38.  
  39.  puts("LECTURA DEL ARREGLO");
  40.  
  41.  do{
  42.        printf("imprima el orden impar del cuadrado mágico: ");
  43.        scanf("%d", &n);
  44.  
  45.    if(n%2 != 0)
  46.        break;
  47.    else
  48.        printf("solo orden impar. \n");
  49.  
  50.  }while(n%2 == 0);
  51.  
  52.  for(i=0; i<n; i++)
  53.    for(j=0; j<n; j++)
  54.          a[i][j] = 0;
  55.  
  56.  /*srand(time(NULL));
  57.   for(i=0; i<n; i++)
  58.     for(j=0; j<n; j++)
  59.           a[i][j] = rand() % (x);*/
  60.  
  61.  x = n*n;
  62.  i=0;
  63.  j=n/2;
  64.  a[i][j] = 1;
  65.  
  66.  while(contador < x){
  67.       if((i-1)>=0){
  68.           if((j+1)<(n)){
  69.               if(a[i-1][j+1]==0){
  70.                   i -= 1;
  71.                   j += 1;
  72.                   contador += 1;
  73.                   a[i][j] = contador;
  74.                }
  75.               else{
  76.                   i += 1;
  77.                   contador += 1;
  78.                   a[i][j] = contador;
  79.               }
  80.           }
  81.           else{
  82.               if(a[i-1][0]==0){
  83.                   i -= 1;
  84.                   j = 0;
  85.                   contador += 1;
  86.                   a[i][j] = contador;
  87.               }
  88.               else{
  89.                   i += 1;
  90.                   contador += 1;
  91.                   a[i][j] = contador;
  92.               }
  93.           }
  94.       }
  95.       else{
  96.           if(((j+1)<(n))){
  97.               if (a[n-1][j+1]==0){
  98.                   i = n-1;
  99.                   j += 1;
  100.                   contador += 1;
  101.                   a[i][j] = contador;
  102.               }
  103.               else{
  104.                   i += 1;
  105.                   contador += 1;
  106.                   a[i][j] = contador;
  107.               }
  108.           }
  109.           else{
  110.               i += 1;
  111.               contador += 1;
  112.               a[i][j] = contador;
  113.           }
  114.  
  115.       }
  116.  
  117.    }
  118.  for(i=0; i<n; i++)
  119.  {
  120.    for(j=0; j<n; j++)
  121.          printf("%d ", a[i][j]);
  122.  
  123.  
  124.    printf("\n");
  125.  }
  126. }


En línea


saddam

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Aporte: Cuadrado Mágico de orden impar
« Respuesta #1 en: 24 Abril 2018, 17:16 pm »

muchas graias me ayudo bastante ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-)


En línea

TheSj

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Aporte: Cuadrado Mágico de orden impar
« Respuesta #2 en: 22 Agosto 2019, 08:01 am »

Gracias por el aporte, me ayudó muchisimo  ::) ;-) :silbar:
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con cuadrado mágico [RESUELTO]
Programación C/C++
bigfu 7 12,782 Último mensaje 14 Enero 2016, 02:11 am
por Dayciber
Programa en C sharp que genera un cuadrado magico , suma sus filas y columnas
.NET (C#, VB.NET, ASP)
david_quiroz19 0 9,406 Último mensaje 13 Noviembre 2011, 00:15 am
por david_quiroz19
Cuadrado Mágico
Programación C/C++
Black Lotus 5 4,869 Último mensaje 15 Marzo 2013, 20:58 pm
por Black Lotus
Cuadrado Mágico
Programación C/C++
anaaaaaaa 3 7,174 Último mensaje 7 Diciembre 2015, 16:37 pm
por ivancea96
cuadrado magico
Dudas Generales
manno 1 1,984 Último mensaje 5 Julio 2020, 02:15 am
por tincopasan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines