Metoda kolejnych przyblizen pierwiastka 3 stopnia (czysty C - rekurencja)

0

Witam,
Mam taki problem, mam taki kodzik:

#include <stdio.h>
#include <math.h>
float pierw(float a, int i)
{
    float x;
    if(i==1)
        return a/2;
    else
    {
        x=pierw(a, i-1);
        return 1/3*(2*x+a/(x*x));
    }
}
int main()
{
    float c;
    int d;
    printf("Prosze podac c: ");
    scanf("%f", &c);
    printf("Prosze podac d: ");
    scanf("%d", &d);
    pierw(c, d);

return 0;
}

CHodzi o to ze mam takie zadanko:
user image
Czy to jest dobrze napisane, pisalem to dosyc dawno i jak teraz uczę się do zaliczenia mam lekkie wątpliwości co do poprawnosci tego kodu, a mianowicie czy ta funkcja nie powinna przyjmowac tyko jednego argumentu ktorym jest "a"? Ktos cos rozkmini? Co ja mam podstawić za te "i" tzw. liczby od 1,2,3...,10? czy jak?

2
  1. Odradzam użycia float zwłaszcza przy przybliżeniach
  2. Może tak wyświetlisz wynik razem z poprawnym pierwiastkiem: pow(c,1.0/3) lub cbrt(c); - podpowiedź od @vpiotr, patrz komentarze

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