suma de filas
Publicado por eduardo (82 intervenciones) el 27/03/2008 03:38:57
La siguiente funcion suma cada fila de matriz[FILAS][COLUMNAS] y la guarda en cada posicion
del vector array_sum_filas[FILAS] de esta forma:
void sumar_filas( const int matriz[][COLUMNAS], int array_sum_filas[FILAS] ) {
register int i, j;
int suma = 0;
printf( " Suma de filas (primer metodo): " );
for( i = 0; i < FILAS; i++ ) {
for( j = 0; j < COLUMNAS; j++ )
suma += matriz[i][j];
array_sum_filas[i] = suma;
suma = 0;
}
}
Pues esto me funciona pero se me pide que lo haga usando sólo Aritmética de punteros, es decir
sin indexar los arreglos, mi primer intento fue este:
void sumar_filas2( const int *matriz, int *array_sum_filas ) {
register int i;
int suma = 0, k = 0;
printf( " Suma de filas (segundo metodo): ");
for( i = 0; i < FILAS * COLUMNAS; i++ ) {
suma += *( matriz + i );
if ( i % COLUMNAS == 0 ) {
*( array_sum_filas + k++ ) = suma;
suma = 0;
}
}
}
No funciona y con razon pero no hallo el algoritmo que me permita solucionar esto.
del vector array_sum_filas[FILAS] de esta forma:
void sumar_filas( const int matriz[][COLUMNAS], int array_sum_filas[FILAS] ) {
register int i, j;
int suma = 0;
printf( " Suma de filas (primer metodo): " );
for( i = 0; i < FILAS; i++ ) {
for( j = 0; j < COLUMNAS; j++ )
suma += matriz[i][j];
array_sum_filas[i] = suma;
suma = 0;
}
}
Pues esto me funciona pero se me pide que lo haga usando sólo Aritmética de punteros, es decir
sin indexar los arreglos, mi primer intento fue este:
void sumar_filas2( const int *matriz, int *array_sum_filas ) {
register int i;
int suma = 0, k = 0;
printf( " Suma de filas (segundo metodo): ");
for( i = 0; i < FILAS * COLUMNAS; i++ ) {
suma += *( matriz + i );
if ( i % COLUMNAS == 0 ) {
*( array_sum_filas + k++ ) = suma;
suma = 0;
}
}
}
No funciona y con razon pero no hallo el algoritmo que me permita solucionar esto.
Valora esta pregunta


0