• Lunes 16 de Diciembre de 2024, 00:48

Autor Tema:  Por favor ayudenme  (Leído 955 veces)

juvelly

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Por favor ayudenme
« en: Miércoles 22 de Abril de 2009, 09:01 »
0
necesito hacer este programa:

Desarrollar un aplicativo en c que implemente una funsion que llene un arreglo de 10 x 10 entero desde teclado y luego de haberse llenado el arreglo se imprima los valores digitados en el arreglo de la siguiente manera: esta la imagen en el archivo adjunto (teniendo en cuenta que la impresion va hasta la diagonal secundaria)

La funcion tiene que retornar la sumatoria de los numeros que se imprimieron, el programa proncipal debe imprimir ese resultado.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Por favor ayudenme
« Respuesta #1 en: Miércoles 22 de Abril de 2009, 09:07 »
0
Desde el vamos te aviso que NO vamos a hacerte el programa nosotros; si tenes dudas publica lo que ya hayas hecho y te ayudaremos.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

juvelly

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Por favor ayudenme
« Respuesta #2 en: Miércoles 22 de Abril de 2009, 15:41 »
0
lo que he hecho es esto pero el problema es la impresion como muestra el dibujo me imprime la mitad de la matriz pero no en el orden que deseo

Código: Text
  1.  
  2. #include<stdio.h>
  3. #include<conio.h>
  4. main()
  5. {
  6.       int arr [4][4];
  7.       int i;
  8.       int u;
  9.       int k=1;
  10.       int j;
  11.       int l;
  12.       for(i=0;i<4;i++)
  13.       {
  14.           for(u=0;u<4;u++)
  15.           {
  16.              arr[i][u]=k;k++;
  17.              }
  18.              }
  19.       for(i=0;i<4;i++)
  20.       {
  21.           for(u=0;u<4;u++)
  22.           {
  23.              for(l=0;l<4;l++)
  24.              {
  25.                  if (i==l-u)
  26.                    {
  27.                       printf("%d", arr[i][u]);
  28.                    }
  29.                    }
  30.              }
  31.              }
  32.              getch();
  33. }
  34.  

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Por favor ayudenme
« Respuesta #3 en: Miércoles 22 de Abril de 2009, 16:32 »
0
Si tomamos x e y como las coordenadas de alto y ancho de la matriz, fíjate que para todos los elementos que componen una diagonal:

1ª diagonal: x + y = 2
2ª diagonal: x + y = 3
3ª diagonal: x + y = 4 etc...

Por tanto, para una matriz cuadrada de nxn sólo tienes que descomponer 2..n+1 en todos sus 2 sumandos, los cuales puedes usar luego como coordenadas de los elementos. Para las diagonales tal y como las muestras, hay que empezar con x>=y y acabar con y>=x. Para las inversas, al revés.

Ejemplo de 2ª diagonal:

3 = 2+1, 1+2 => los elementos de la 2ª diagonal son por tanto M(2,1) y M(1,2)

Esto seguramente tendrá alguna explicación matemática más formal, pero yo me acabo de dar cuenta de ello  :lol:

Salud