Hola,
No hay solución única a este problema (ni a ningun otro).
Tendrías que considerar desde un principio el tema de si la matriz es o no es cuadrada (en la letra aclara que no tiene por qué ser cuadrada).
Hay que pensar cuáles son las posibles configuraciones que se pueden dar (dependiendo de la forma de la matriz de entrada) y ver cómo solucionarlas: mas filas que columnas; igual nro de filas y columnas; más columnas que filas.
Una solución "sencilla" puede ser el utilizar tres FOR consecutivos, uno para cada diagonal, analizando de qué elemento a qué elemento va cada diagonal.
Otra solución es un único FOR para construir la matriz tridiagonal de M, que recorra casi todas las diagonales, pero que el "remate" lo resuelva después del for, donde según la configuración de la matriz tendrá que hacer cosas distintas.
No se recomienda hacer un doble FOR que recorra toda la matriz y vaya viendo si cada elemento cumple con las propiedades de las tridiagonales para copiarlo a la matriz final. Esto no se considera eficiente, porque recorre demasiados elementos que están por fuera de las 3 diagonales.
Espero haber sido medianamente claro. Si te quedan dudas te aconsejo ir a alguno de los prácticos.
saludos,
Eduardo