Algorytm Newtona-Raphsa wyznacz przybliżoną wartość pierwiastka

0

Mam do wykonania zadanie 2.58. Napisałem kod, lecz nie wszystko chyba działa. Mógłby ktoś spojrzeć i podpowiedzieć?
Zadanie w załączniku

#include<cmath>
#include <functional>
using namespace std;

double oblicz(double p, double E, double L)
{
    int a = p;
    int i = 0;
    if (abs(a - p / a) > E && i < L)
    {
        a = (a + p / a) / 2;
        i++;
    }
    else 
    {
        return a;
    }
    
}

int main()
{
    double p, E, L;
    
    cout << "Podaj liczbe, z ktorej chcesz wyznaczyc pierwiastek: ";
    cin >> p;
    cout << "dokladnosc obliczen: ";
    cin >> E;
    cout << "maksymalna liczba iteracji: ";
    cin >> L;
    cout << "a wynosi: " << oblicz(p, E, L) << endl;
}```
2

Nie wiem dokładnie co tutaj się wyprawia ale nawet dostajesz warning, że oblicz która powinna zwracać double nie zwraca zawsze. Wszystkie znaki na niebie i ziemi wskazują na to, że zamiast ifa powinna być jakaś pętla while, zamiast else po prostu return a; zwracane po wyjściu z pętli.

1 użytkowników online, w tym zalogowanych: 0, gości: 1