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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda S.O.S Programacion en C Arreglos!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda S.O.S Programacion en C Arreglos!!  (Leído 3,565 veces)
smdiegoarmando

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Ayuda S.O.S Programacion en C Arreglos!!
« en: 4 Febrero 2013, 03:24 am »

Muy buenas noches Foro ahora es que estoy empezando en el entorno C y necesito que me ayuden con el siguiente programa:

Programa en C que determine si una matriz, cuyos datos son ingresados por el usuario es o no cuadrado magico dado lo siguiente:

 8    1   6      =15
 3    5   7      =15
 4    9   2      =15
 =   =   =
15  15  15

Por lo tanto la matriz es cuadrado magico!!
________________________________________________________

Necesito ayuda este tema de arreglo se me hace muy complicado :(


En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Ayuda S.O.S Programacion en C Arreglos!!
« Respuesta #1 en: 4 Febrero 2013, 03:33 am »

Qué problema tienes?


En línea

smdiegoarmando

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Ayuda S.O.S Programacion en C Arreglos!!
« Respuesta #2 en: 4 Febrero 2013, 03:35 am »

Sinceramente no se como desenvolver el programa
En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Ayuda S.O.S Programacion en C Arreglos!!
« Respuesta #3 en: 4 Febrero 2013, 03:44 am »

Sinceramente no se como desenvolver el programa

¿No sabes resolverlo manualmente? madre es una suma y tal cual lo harías manual se hace en C solo que con "coordenadas"...

Mira Esto

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
smdiegoarmando

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Ayuda S.O.S Programacion en C Arreglos!!
« Respuesta #4 en: 4 Febrero 2013, 03:54 am »

¿No sabes resolverlo manualmente? madre es una suma y tal cual lo harías manual se hace en C solo que con "coordenadas"...

Mira Esto

Dulces Lunas!¡.

Cierto pero no se que metodologia usar en el entorno C
En línea

naderST


Desconectado Desconectado

Mensajes: 625



Ver Perfil WWW
Re: Ayuda S.O.S Programacion en C Arreglos!!
« Respuesta #5 en: 4 Febrero 2013, 04:03 am »

Básicamente debes pedir al usuario las dimensiones de la matriz, recorrer dicha matriz pidiéndole al usuario el valor de cada elemento, sumar los elementos de cada fila y columna respectivamente y luego validar que todas las sumas sean iguales (puedes utilizar arreglos para almacenar la suma, tanto de las filas como de las columnas).

EDIT:

Además creo que debes validar la suma de la diagonal principal y que la matriz sea cuadrada.
« Última modificación: 4 Febrero 2013, 04:05 am por naderST » En línea

TopoJunior

Desconectado Desconectado

Mensajes: 40



Ver Perfil
Re: Ayuda S.O.S Programacion en C Arreglos!!
« Respuesta #6 en: 4 Febrero 2013, 20:28 pm »

Bueno, llevo casi una hora haciendo esto, que no sabía como hacerlo.. Es una matriz de 2 filas, y 2 columnas obvio... Lo siento por no hacerla de más columnas... Pero era ya un codigo de la hostia, si me permitís la expresión xD. Es para que te hagas una idea... Yo no sabía ni lo que eran las matrices, tengo 12 años. Las busqué en internet y bueno me puse a " programarlo " Me han dicho, que es mucho más fácil con vectores, asique, mirate la estructura, entiendela y hazlo con vectores:D
Citar
#include <stdio.h>  /* Como saber si una matriz es perfecta */
main()
{
      int filas;
      int columnas;
      int eleccion1;
      int primernumero, segundonumero;
      int primernumero1, segundonumero1;
      int primernumero2, segundonumero2;
       int primernumero3, segundonumero3;
      printf("Inserta el numero de filas.\n");
      scanf("%d", &filas);
      printf("Inserta el numero de columnas.\n");
      scanf("%d", &columnas);
      if(filas == columnas)
      {
               printf("Vamos bien...\n");
      }
      else
      {
          printf("Para que sea perfecta, tiene que tener los mismos numeros de filas y columnas\n");
          }
          printf("Escribe 2 porque es de dos filas y dos columnas.\n");
          scanf("%d", &eleccion1);
      switch(eleccion1)
      {
             case 2:  printf("Introduce, seguidos, los numeros de la primera fila.\n");
             scanf("%d %d", &primernumero, &segundonumero);
             printf("Introduce, seguidos los numeros de la segunda fila\n");
             scanf("%d %d", &primernumero1, &segundonumero1);
             printf("Introduce, seguidos los numeros de la primera columna.\n");
             scanf("%d %d", &primernumero2 , &segundonumero2);
               printf("Introduce, seguidos los numeros de la segunda columna.\n");
               scanf("%d %d", &primernumero3, &segundonumero3);
             if(primernumero + segundonumero == primernumero1 + segundonumero1)
             {
             if(primernumero2 + segundonumero2 == primernumero3 + segundonumero3)
             {
               printf("Es una matriz magica\n");               
             }
             }
             else
             {
                 printf("No es una matriz magica.");
             }
                  break;
      }
      while(1);
}
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Ayuda S.O.S Programacion en C Arreglos!!
« Respuesta #7 en: 4 Febrero 2013, 20:55 pm »

Un detalle:

Código
  1.  if(primernumero + segundonumero == primernumero1 + segundonumero1)
  2.  {
  3.             if(primernumero2 + segundonumero2 == primernumero3 + segundonumero3)
Tienes que ponerlo entre parentesis las sumas para que te coja el valor entero. Además puedes concatenar 2 ifs con un &&:

Código
  1.  if((primernumero + segundonumero) == (primernumero1 + (segundonumero1) && (primernumero2 + segundonumero2) == (primernumero3 + segundonumero3))

Y en cuanto al código, es muy bonito el intento (se nota que entiendes algunos conceptos) pero te faltan algunos otros... Yo que tu me miraría estos videotutoriales:
http://minidosis.org/C++/

Las mejoras que se le podrían meter al código son varias, como hacerlo más general y usar matrices y vectores. Esta es mi versión:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. // Averiguar si una matriz es magica
  5.  
  6. int ComprobarMagica(int** Matriz,unsigned int Tamanyo);
  7.  
  8. int main()
  9. {
  10.    unsigned int Tamanyo; // He puesto unsigned porque no vamos a usar valores negativos
  11.    printf("Inserte el tamanyo de la matriz: ");
  12.    scanf("%d",&Tamanyo);
  13.  
  14.    int Matriz[Tamanyo][Tamanyo]; // Creamos una matriz con el tamanyo que nos han dado
  15.  
  16.    for (unsigned int j = 0; j < Tamanyo;j++)
  17.        for (unsigned int i = 0; i < Tamanyo;i++)
  18.        {
  19.            printf("\n Inserte un valor para la posicion (%d,%d)",i,j);
  20.            scanf("%d",Matriz[i][j]);
  21.        }
  22.  
  23.    if (ComprobarMagica(Matriz,Tamanyo) == 1)
  24.        printf("La matriz es magica \n");
  25.    else
  26.        printf("La matriz no es magica :( \n");
  27.  
  28.    getchar();
  29.    return 0;
  30. }
  31.  
  32. int ComprobarMagica(int** Matriz,unsigned int Tamanyo)
  33. {
  34.    int aux[Tamanyo*2]= {0};
  35.  
  36.    // Filas
  37.  
  38.    for (unsigned int j = 0; j < Tamanyo;j++)
  39.    {
  40.        for (unsigned int i = 0; i < Tamanyo;i++)
  41.            aux[j] += Matriz[i][j];
  42.  
  43.        if (aux[j] != aux[j-1])
  44.                return 0;
  45.    }
  46.  
  47.    // Columnas
  48.  
  49.    for (unsigned int j = 0; j < Tamanyo;j++)
  50.    {
  51.        for (unsigned int i = 0; i < Tamanyo;i++)
  52.            aux[j+Tamanyo] += Matriz[j][i];
  53.  
  54.        if (aux[j+Tamanyo] != aux[j+Tamanyo-1])
  55.                return 0;
  56.    }
  57.    return 1;
  58. }

No la he probado, asi que puede que tenga algun error (además lo mío es C++ no C  :silbar:)



« Última modificación: 4 Febrero 2013, 21:03 pm por amchacon » En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
TopoJunior

Desconectado Desconectado

Mensajes: 40



Ver Perfil
Re: Ayuda S.O.S Programacion en C Arreglos!!
« Respuesta #8 en: 4 Febrero 2013, 21:18 pm »

Bueno, yo hago eso a medida de lo que yo se, como se poco, muy poquito lo he intentado hacer así, y me ha salido :D Gracias por preocuparte también en mirarlo y eso! Y bueno, el caso es que yo empezé por C y cuando sepa de C más, seguiré con C++!
En línea

durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Ayuda S.O.S Programacion en C Arreglos!!
« Respuesta #9 en: 4 Febrero 2013, 21:53 pm »

Citar
No la he probado, asi que puede que tenga algun error
Si, en la funcion ComprobarMagica la declaracion de Matriz debe ser:

Código
  1. int ComprobarMagica(int Matriz[FILA][COLUMNA],unsigned int Tamanyo); // donde FILA y COLUMNAS son dos constantes
tambien se puede omitir las filas:
Código
  1. int ComprobarMagica(int Matriz[][COLUMNA],unsigned int Tamanyo);



Saludos
En línea

Ahorrate una pregunta, lee el man
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda arreglos
Java
iChris 2 2,822 Último mensaje 22 Septiembre 2012, 09:07 am
por horny3
Programacion Ayuda en C ARREGLOS
Programación General
smdiegoarmando 3 2,384 Último mensaje 6 Enero 2015, 00:51 am
por Eleкtro
Ayuda con Arreglos y Menu programacion en C
Programación C/C++
smdiegoarmando 1 6,235 Último mensaje 7 Febrero 2013, 14:48 pm
por amchacon
Ayuda: Programación con arreglos
Programación C/C++
furciorifa 1 1,568 Último mensaje 6 Enero 2015, 02:18 am
por Yoel Alejandro
Ayuda con c# y arreglos
.NET (C#, VB.NET, ASP)
Extravagan 1 2,292 Último mensaje 8 Febrero 2016, 08:53 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines