Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: NicolasPileci en 18 Octubre 2016, 21:29 pm



Título: Problema en suma de matrices
Publicado por: NicolasPileci en 18 Octubre 2016, 21:29 pm
Hola, buenas tardes,

El siguiente programa intenta sumar dos matrices de 2x2.
El problema se da que devuelve cualquier resultado, menos la suma.

Gracias!

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define COL 1
  4. #define FIL 1
  5.  
  6. void ingresarMatriz (int[][COL]);
  7. void sumarMatriz (int[][COL], int[][COL], int[][COL]);
  8. void mostrarMatriz (int[][COL]);
  9.  
  10. int main()
  11. {
  12.    system ("color 0a");
  13.    int matrizA[FIL][COL],
  14.        matrizB[FIL][COL],
  15.        matrizC[FIL][COL];
  16.    printf("\t\tDATOS PRIMERA MATRIZ:\n");
  17.    ingresarMatriz(matrizA);
  18.    printf("\t\tDATOS SEGUNDA MATRIZ:\n");
  19.    ingresarMatriz(matrizB);
  20.    sumarMatriz(matrizA, matrizB, matrizC);
  21.    printf("\t\tMATRIZ FINAL:\n");
  22.    mostrarMatriz(matrizC);
  23.    return 0;
  24. }
  25.  
  26. void ingresarMatriz (int matriz[][COL])
  27. {
  28.    int i,
  29.        j;
  30.    for(i=0;i<=FIL;i++)
  31.    {
  32.        for(j=0;j<=COL;j++)
  33.        {
  34.            scanf("%d",&matriz[i][j]);
  35.        }
  36.    }
  37. }
  38.  
  39. void sumarMatriz (int matriz1[][COL], int matriz2[][COL], int matriz3[][COL])
  40. {
  41.    int i,
  42.        j;
  43.    for(i=0;i<=FIL;i++)
  44.    {
  45.        for(j=0;j<=COL;j++)
  46.        {
  47.            matriz3[i][j] = matriz1[i][j] + matriz2[i][j];
  48.        }
  49.    }
  50. }
  51.  
  52. void mostrarMatriz (int matriz3[][COL])
  53. {
  54.    int i,
  55.        j;
  56.    for(i=0;i<=FIL;i++)
  57.    {
  58.        for(j=0;j<=COL;j++)
  59.        {
  60.            printf("\n%d\n",matriz3[i][j]);
  61.        }
  62.    }
  63. }
  64.  


Título: Re: Problema en suma de matrices
Publicado por: MAFUS en 18 Octubre 2016, 21:35 pm
En los for, en la condición de continuidad, en vez de usar el comparador <= debes usar el comparador <. No debes llegar al valor máximo de la dimensión. Recuerda que empiezas por 0, no por 1.


Título: Re: Problema en suma de matrices
Publicado por: NicolasPileci en 18 Octubre 2016, 21:46 pm
Hola,

Si uso los DEFINE FIL 1 y COL 1, ya pacta que que los for's vayan de 0 a 1 (es decid, dos elementos)

¿O me estoy equivocando?

Gracias!


Título: Re: Problema en suma de matrices
Publicado por: MAFUS en 18 Octubre 2016, 21:55 pm
Estás equivocado.

En cuánto declaras, por ejemplo int array[1], estás diciendo que quieres un array de 1 elemento, y tal y como cuenta C sólo es válido el elemento array[0].
Si quisieras un elemento array[1] ya son 2 elementos que se deben poder guardar, el array[0] y array[1], por lo que deberías declararlo como int array[2].


Título: Re: Problema en suma de matrices
Publicado por: NicolasPileci en 18 Octubre 2016, 22:19 pm
Ya funciono. Era como vos decías.

Muchisimas gracias!!