E logico che vada in loop dato che
int n = 1;
int n_max = 100;

while (n < n_max) // Questa condizione è sempre true...

Comunque n_max è inutile la puoi eliminare, ed acne lo stesso ciclo while.
Io ancora non vedo la dichiarazione della matrice ...