mi sembra di capire che cerchi di risolvere tutto in un ciclo for, però se l'esponente è negativo, in quel ciclo non ci entrerai mai, quindi ti ritorna correttamente c, che è stata inizializzata ad 1
EDIT:
prova qualcosa del genere
ovvero ci affidiamo ad una variabile per far funzionare il ciclo for.codice:int k = (n > 0 ? n : -n); for(int i=0; i < k; i++) { if (n > 0) { c*=x; } else { c /= x; } }