calcular potencias negativas en C++

Estoy intentando calcular la potencia de un número sin el uso de la función pow. Hice los tres casos que se pueden presentar, pero cuando el exponente = 0 no me imprime nada, y cuando el exponente < 0 me imprime siempre 0. No sé qué error pueda tener en mi código. Muchas gracias.

#include <stdio.h>
#include <conio.h>

void pedirDatos();
int funpot();

int numero,exponente;
int q=1;
int q2=1;
int main(){
    pedirDatos();
    funpot();
return 0;
}

void pedirDatos(){
    printf ("Digite el numero a elevar: ");
    scanf ("%i",&numero);
    printf ("Digite el exponente de elevacion: ");
    scanf ("%i",&exponente);
}

int funpot(){
    if(exponente==0)
    return 1;
    else if(exponente>0){
        for(int i=1;i<=exponente;i++)
            {
            q=q*numero;       
            }
            printf("El resultado de la elevacion es: n%d",q);;
    }
        else if(exponente<0){
            for(int i=1;i<=exponente;i++)
                {
                q2=1/(q2*numero); 
                }
                printf ("El resultado de la elevacion es: n%d",q2=1/(q2*numero));
    return q2;
    }       
    getch();
}   ```