Creo que esto mejor lo solucionabas con recursividad al menos queda mas claro , ademas no si este tipo de ejercicios (matematicos) son habituales para ti , si es asi ,te recomendaria usar matlab o phyton y no c , pero es una opinion personal , el codigo lo he hecho un poco por arriba pero creo que es lo que necesitas.
Espero que te sea de ayuda , si tienes alguna duda o ves que algo esta mal comenta , como te he dicho he hecho el codigo un poco rapido , pero a simple vista creo que es lo que pides.
Un saludo
Código (cpp) [Seleccionar]
float m[n][n]; //n numero de elementos
m[0][0]=k[0]+k[1];
m[0][1]=-k[1];
void paso(int n){ //primera llamada con n=1
if(n=k[].lenght){ // es el ultimo
m[n][n]=k[n];
m[n][n-1]=-k[n];
}
m[n][n-1]=k[n];
m[n][n]=k[n]+k[n+1];
m[n][n+1]=-k[n+1];
paso(n+1);
}
Espero que te sea de ayuda , si tienes alguna duda o ves que algo esta mal comenta , como te he dicho he hecho el codigo un poco rapido , pero a simple vista creo que es lo que pides.
Un saludo