Dlaczego Twoje zmienne są zmiennymi globalnymi?
Ale przechodząc do tematu wątku. Najprostszym rozwiązaniem jest dołączenie biblioteki, która ma już tą funkcję. "#include <cmath>" i w kodzie później piszesz tylko pow(a,b); rzuć okiem tutaj: http://www.cplusplus.com/reference/cmath/pow/
Ale jeśli chciałbyś napisać to sam, (dla wykładnika będącego liczbą naturalną)(!) to wystarczy w pętli n razy (gdzie n to wykładnik potęgi) pomnożyć zmienną zainicjalizowaną wartością jeden przez podstawę. Wyglądać to może tak:
#include <iostream>
using namespace std;
int main(void)
{
unsigned int wykladnik;//wykladnik bedzie liczba nieujemna
int podstawa,wynik=1;//wynik musi miec przypisana wartosc 1
cin>>podstawa>>wykladnik;
while(wykladnik--)//wykonuj aż wykładnik != 0, zatem wykonaj wykladnik (na początku)razy
wynik*=podstawa;///*to znaczy:*/ wynik=wynik*podstawa;
cout<<wynik<<'\n';
return 0;
}
Co dla liczb pary liczb (Z;N)* rozwiązuje nam to zadanie. Można zmienić podstawę na typ np. double (wtedy też wynik), ale bez innych modyfikacji wykładnik musi pozostać w typie unsigned int.
*Podstawa całkowita, wykładnik naturalny.