for(int h=2, h<=h+1; h++)
Questo dà infinito perché h non lo cambi mai dentro il ciclo. Sicuro di aver scritto giusto?
i=1;
while (i<n*n+1)
i++;
Questo dipende molto dal compilatore: se è un compilatore intelligente farà
i=1; // 1
k = n*n; // 1
k += 1; // 1
while( // n^2 * (...
i<k // ... 1 + ...
)
i++; // ... 1)
Quindi 1+1+1+n^2*(1+1) = 2n^2+3
EDIT : a questo totale sottrai - 1 perché al passaggio finale non viene eseguito i++
Ma comunque l'errore grosso era non aver fatto la moltiplicazione n^2*(istruzioni interne). n^2 è perché i inizia da 1, altrimenti sarebbe stato n^2+1