Witam! Napisałem program w C, który oblicza liczbę pi ze wzory rekurencyjnego, oto on:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
float pi(float x, int k, int counter);
int main(void)
{
float x;
int k;
int result = scanf("%f %d", &x, &k);
if (result != 2 || !(x>0) || !(k>1)) exit(0);
printf("\nPierwiastek kwadratowy z x to: %.12f\n",sqrt(x));
for (int counter=1; counter<k; counter++) printf("\n%.12f\t\t%.12f",pi(x,k,counter),pi(x,k,counter)-sqrt(x));
return 0;
}
float pi(float x, int k, int counter)
{
float *p[k], *pointer;
pointer = p[0];
*pointer = 1;
*(pointer+counter) = ((x/(*(pointer+counter-1)))+(*(pointer+counter-1)))/2;
return *(pointer+counter);
}
Sprawa wygląda tak, że bez problemu się kompiluje, nie ma żadnych błędów ani ostrzeżeń, ale gdy podam x równy 4 i k równe 9 to wyskakuje błąd że program przestał działać, a np. dla danych x równe 2 i k równe 4 program działa. Proszę. pomóżcie znaleźć błąd.