Recursión: Suma recursiva de matriz

sumaRecMatriz.html
#include <stdio.h>

int suma(int m[3][3], int i, int j, int f, int c, int s);

void main(){
		
int mat[3][3]={3,3,3,3,4,3,3,3,3};
int i, j, f,c,s;
i=0;
j=0;
s=0;
f=3;
c=3;

s=suma(mat,0,0,3,3,0);
printf("suma=%d:",s);
}

int suma(int m[3][3], int i, int j, int f, int c, int s){
if (i<f && j<c){  // estamos dentro de la fila i y vamos sumando columnas j=j+1 hasta j==c
   suma(m, i, j+1, f, c, s+m[i][j]);
}
else if (i<f && j==c){  // j==c -->hemos llegado al final de una fila --> fila+1 y reseteamos j=0
   suma(m, i+1, 0, f, c, s);
}
else if (i==f && j==0) { // hemos sumado todas las filas y columnas i==f
  	  return s;
}
}

No hay comentarios:

Publicar un comentario