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
int sumarfilas(Matriz *m) { int i,j,a,b,suma,vertical[i]; a=m->filas; b=m->columnas; for(i=0;i<a;i++) { suma=0; for(j=0;j<b;j++) { suma+=*(m->datos+i*b+j); } vertical[i]=suma; } return vertical[i]; } int sumarcolumnas(Matriz *m){ int c,f,a,b,vector[c]; a=m->filas; b=m->columnas; for(c=0;c<b;c++){ // por cada columna for( f=0;f<a;f++) // por cada elemento de la columna vector[c]+=*(m->datos+f*b+c); } return vector[c]; }
Gracias!