Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: andie13 en 18 Diciembre 2016, 00:17 am



Título: [C]: sumar cada fila de una matriz
Publicado por: andie13 en 18 Diciembre 2016, 00:17 am
Hola!
Necesito calcular la suma de cada fila de una matriz cuadrada tal que así, mediante punteros, pero la suma de las filas no funciona correctamente (me da un valor de más) y las columnas no las suma directamente.

     1       1       1   | 3
     1       1       1   | 3
     1       1       1   | 3
------- ------- -------
     3       3       3 

La matriz está declarada como una estructura con
typedef struct{
int filas;
int columnas;
int *datos;
}Matriz;

El código es el siguiente:
Código
  1. int sumarfilas(Matriz *m)
  2. {
  3.    int i,j,a,b,suma,vertical[i];
  4.    a=m->filas;
  5.    b=m->columnas;
  6. for(i=0;i<a;i++)
  7.    {
  8.    suma=0;
  9.        for(j=0;j<b;j++)
  10.        {
  11.            suma+=*(m->datos+i*b+j);
  12.        }
  13.        vertical[i]=suma;
  14.    }
  15. return vertical[i];
  16. }
  17. int sumarcolumnas(Matriz *m){
  18.    int c,f,a,b,vector[c];
  19.    a=m->filas;
  20.    b=m->columnas;
  21.    for(c=0;c<b;c++){ // por cada columna
  22.        for( f=0;f<a;f++) // por cada elemento de la columna
  23.        vector[c]+=*(m->datos+f*b+c);
  24.  
  25.    }
  26.    return vector[c];
  27. }

Gracias!


Título: Re: [C]: sumar cada fila de una matriz
Publicado por: MAFUS en 18 Diciembre 2016, 01:02 am
Varios fallos:
Línea 3: Ya que 'i' no tiene valor definido contiene un número aleatorio por tanto 'vertical[i]' es un array de dimensión desconocida.

Línea 18: Igual que el error en la línea 3 pero esta vez con 'c' y 'vector[c]'.

Línea 15: Entiendo que quieres devolver un array, pero en C eso no está permitido. De todas formas regresas un valor que está una posición más allá del límite del array 'vertical'. Un fallo dentro de un fallo.

Línea 26: Igual error que la línea 15 pero con el array 'vector'.


Título: Re: [C]: sumar cada fila de una matriz
Publicado por: andie13 en 18 Diciembre 2016, 01:11 am
Gracias pro responder.
Entiendo lo que quieres decir, pero si no lo hago con arrays, como puedo hacerlo?