Oh, vaya. Antes copié la misma línea de código y no me di cuenta.
Aquí tienes un error:
fscanf(f1,"%f", matriz[i][j]);
Se te pasó poner el & antes de matriz[ i ][j]. El argumento de scanf tiene que ser el puntero al dato, no el dato.
Y otra cosa. Es recomendable que el main devuelva un entero. Deberías poner int main() en la cabecera y no main() a secas. Y al final del main, pon return 0;
Te aconsejo que compiles con -Wall y -Werror. Deberías considerar todos los warning como errores, y corregirlos convenientemente (y tu código da un par de warnings si los compilas con -Wall)
max_altura=m[i][j];
esta sentencia creo que me sobraba, nose porque estaba ahí aun asi sigo teniendo error de segmentacion, ¿que es lo que que dices que es necesario inicializar?
no se supone que i y j adquieren el valor -1 al ejecutarse el for?
Me refería a que si querías acceder a m[ i ][j] antes del for, tenías que darle un valor concreto a i, j (inicializarlos).
Saludos.