Recursión: Matriz traspuesta

TraspuestaRec.html
	#include <stdio.h>

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

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

s=traspuesta(mat,0,0,3,3);
}

int traspuesta(int m[3][3], int i, int j, int f, int c){
if (i<f && j<c){  // estamos dentro de la fila i y vamos traspuestando columnas j=j+1 hasta j==c
   if (j==0) printf("%d",m[j][i]); 
    if (j==1) printf("%d",m[j][i]);
      if (j==2) printf("%d\n",m[j][i]);
   traspuesta(m, i, j+1, f, c);
}
else if (i<f && j==c){  // j==c -->hemos llegado al final de una fila --> fila+1 y reseteamos j=0
   traspuesta(m, i+1, 0, f, c);
}
else if (i==f && j==0) { // hemos traspuestado todas las filas y columnas i==f
  	  return;
}
}


No hay comentarios:

Publicar un comentario