Uczę się dopiero, więc wybaczcie banalność kodu, ale nie mogę sobie z czymś poradzić - program, który działa bez problemu pod Windowsem, działa pod Linuksem, jednak nie tak, jak należy - pętla nieskończona i koniec. Tzn. jeśli podaję poprawne dane to wszystko jest okej, natomiast po wczytaniu tekstu mam przed oczami całą konsolę pełną "Podaj...".
#include<iostream>
using namespace std;
double potega(double x, int n)
{
if (n == 0)
{
return 1;
}
if (n % 2 != 0)
{
return x*potega(x, n-1);
}
else
{
double a = potega(x, n/2);
return a*a;
}
}
int main()
{
int podstawa;
int wykladnik;
do
{
cout << "Podaj podstawe potegi ";
cin.clear();
cin.sync();
cin >> podstawa;
}
while(cin.fail());
do
{
do
{
cout << "Podaj wykladnik potegi (naturalny) ";
cin.clear();
cin.sync();
cin >> wykladnik;
}
while(cin.fail());
}
while(wykladnik <= 0);
cout << "Wynik potegowania to " << potega(podstawa, wykladnik);
return 0;
}
Co zrobić, żeby pod Linuksem działało to zgodnie z zamierzeniem?