Ошибка где то в коде, считает неправильно столбец f... Помогите найти эту ошибку и исправить... Я так понимаю эта ошибка в цикле где считается f, но не знаю как исправить... Задание такое: Вычислить значения суммы ряда S при заданных с консоли начальном и конечном значениях аргумента x (x_nach, x_kon), шаге его изменения delta_x и точности вычислений eps. Вычисленные значения ряда сравнить со значениями заданной функции f(x). Результаты вычислений вывести в виде таблицы с заголовком. Срочно нужно, помогите кто может...
Код:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main()
{
float x, s, f, x_nach, x_kon, delta_x, eps, temp;
int n;
printf("\nlaboratornaya rabota №3");
printf("\nvariant №8");
printf("\nIS-12-2");
printf("\nHamchuk Evgeniy\n");
printf("\ninitial data input:\n");
printf("\nx_nach=");
scanf("%f", &x_nach);
printf("\nx_kon=");
scanf("%f", &x_kon);
printf("\ndelta_x=");
scanf("%f", &delta_x);
printf("\neps=");
scanf("%f", &eps);
printf("\nfor x=%5.3f to %5.3f increments %5.3f and precision %5.3f\n", x_nach, x_kon, delta_x, eps);
printf("\n x n s f");
printf("\n--------------------------------------");
x = x_nach;
do
{
temp=x;
s=0.0;
n=1.0;
double f=0.0;
if((x<0.0) && (x>=-1.0))
{
f=M_PI/2.0+atan(sqrt(1.0-x*x/x));
}
else if((x>0.0) && (x<=1.0))
{
f=atan(sqrt(1.0-x*x)/x);
}
while(fabs(temp)>eps)
{
s+=temp;
temp*=-x*x*(2.0*n-1.0)*(2.0*n-1.0)/((2.0*n)*(2.0*n+1.0));
n++;
}
printf("\n%5.3f %d %0.6f %0.6f", x, n, s, f);
x += delta_x;
}
while(x<=x_kon);
printf("\n--------------------------------------");
return 0;
}