Cierto aqui esta traducido a c++, claro esta antes de que contestaras .Por cierto la idea que has planteado esta bien pero no has tenido en cuenta los erros, como si alguien decidiera poner 0^-1 = 1/0...Asi que la respuesta no esta del todo bien.
Código (cpp) [Seleccionar]
#include<iostream>
#include<stdio.h>
#include<conio.h>
//Ejemplo de elevar potencia sin utilizar Funciones Recurcivas
using namespace std;
int calculadora( int n, int m)
{
int i=0,result=1;
if (m==1 || m==-1) {return n;}
else {
do
{
i=i+1;
result=result*n;
}while(i!=m);
return result;
}
}
int main()
{
int n,m;
cout<<"Dime un numero: "<<" "<<endl;
cin>>n;
cout<<"Dime su potencia: "<<" "<<endl;
cin>>m;
if(m==0) cout<<"El resultado es: 1"<<endl; else{
if (m==-1 && n==0) {cout<<"Error 1/0 es un indeterminacion y no tiene solucion"<<endl;} else{
if (m==-1) {cout<<"El resultado es: 1/"<<calculadora(n,m)<<endl;}
else{ cout<<"El resultado es: "<<" "<<calculadora(n,m)<<endl;}
}
}
system("PAUSE");
return 0;
}