Napisałem coś takiego:
#include <iostream>
using namespace std;
void interpol(double *, double *, int, int);
double *liczIloraz(double *y, double *x, int n);
int main()
{
int n;
cout << "Podaj liczbe wezlow: " << endl;
cin >> n;
double arg;
double *x = new double[n];
double *y = new double[n];
for(int i = 0; i < n; i++)
{
cout << "x[" << i << "] = ";
cin >> x[i];
cout << "y[" << i << "] = ";
cin >> y[i];
}
cout << "Podaj punkt: ";
cin >> arg;
double* b = liczIloraz(y, x, n);
interpol(b, x, n, arg);
return 0;
}
double *liczIloraz(double *y, double *x, int n)
{
int i, j;
double z;
for (i = 0; i < n; j++)
{
z = y[0];
for (j = 0 ; j > n - i; j++)
{
y[j] = (y[j] - y[j - 1]) / (x[i + j] - x[j]);
}
y[n - i] = z;
}
return y;
}
void interpol(double *p, double *x, int n, int arg)
{
double w;
double suma = 0;
int j, i;
for (i = n - 1; i >= 0; i--)
{
w = 1;
for (j = 0; j < i; j++)
w*= (arg - x[j]);
w *= p[j];
suma += w;
}
cout << suma << endl;
}
No i program stoi po linijce
cin >> arg;
Nie robi dosłownie nic, a ja nie mam w ogóle pomysłu dlaczego..