Moje zadanie brzmi: ,,Napisz, wywołaj i przetestuj następujące funkcje: Podnoszenie liczby do potęgi: funkcja przyjmuje dwa argumenty, zmienne liczbowe: podstawę i wykładnik potęgi oraz zwraca wynik potęgowania."
Udało mi się zrobić taki program i już myślałem, że wszystko gra. Ale program wy
#include <iostream>
using namespace std;
int wynik_potegi(int podstawa, int wykladnik)
{
float potega=1;
if (wykladnik != 0)
{
if (wykladnik<0)
{
podstawa= 1/podstawa;
}
for (int i=1; i<=wykladnik; i++)
{
potega*=podstawa;
}
}
else if (wykladnik == 0)
{
podstawa=1;
}
return potega;
}
int main()
{
int podstawa;
int wykladnik;
cout<<"Podaj podstawe: ";
cin>>podstawa;
cout<<"Podaj wykladnik: ";
cin>>wykladnik;
cout<<endl;
cout<<"Liczba " <<podstawa<< " do potegi "<<wykladnik<<" wynosi: "<<wynik_potegi(podstawa, wykladnik)<<endl;
system ("PAUSE");
return 0;
}
krzacza się gdy potęga jest ujemna i zamiast ułamka zawsze zwraca 1. Proszę o pomoc w znalezieniu błędu.