Написать функцию вычисления суммы ряда - C (СИ)
Формулировка задачи:
Написать функцию вычисления суммы ряда s=s(1)+…+s(n),
где s(n)=(-1)n x(2n-1)/(2n+1) с точностью до eps=0.001. В качестве параметров выбрать x и eps.
Выполнил программу, вот ошибки ->
Сумму надо посчитать с точностью eps, т.е. цикл добавления очередного члена ряда продолжается до тех пор, пока член ряда не станет меньше eps. Это цикл с неизвестным заранее числом повторений, т.е. n вводить не нужно.
Помогите исправить.
#include <stdio.h>
#include <math.h>
float f(float , int);
main()
{
float x, s;
int n, j;
printf ("Введите x и n через \"пробел\": ");
scanf ("%f %d", &x, &n);
for (j=1; j<=n; j++)
s+=f(x, j);
printf ("\ns=%.3f", s);
getchar();
getchar();
return 0;
}
float f(float x, int n)
{
float y;
y=pow(-1, n)*pow(x, 2*n-1)/(2*n+1);
printf ("\ny=%.3f", y);
return y;
};
Вот, посмотрите, правильно?
Почему-то просит ввести два числа(
#include <stdio.h>
#include <math.h>
#include <conio.h>
/*
Написать функцию вычисления суммы ряда s=s(1)+…+s(n),
где s(n)=(-1)n x(2n-1)/(2n+1) с точностью до eps=0.001. В качестве параметров выбрать x и eps.
*/
float f(float , int);
main()
{
float x, s, eps = 0.001;
int j;
printf ("Enter x: ");
scanf ("%f ",&x);
j=0;
s=0;
do
{
j=j+1;
s=s+f(x, j);
}
while (s < eps);
printf ("\n s=%.3f ", s);
getch();
return 0;
}
float f(float k, int n)
{
float y;
y=pow(-1, n)*pow(k, 2*n-1)/(2*n+1);
return y;
};
теперь работает нормально, только не знаю,правильно ли?
#include <stdio.h>
#include <math.h>
#include <conio.h>
/*
Написать функцию вычисления суммы ряда s=s(1)+…+s(n),
где s(n)=(-1)n x(2n-1)/(2n+1) с точностью до eps=0.001. В качестве параметров выбрать x и eps.
*/
float f(float , int);
main()
{
float x, s, eps = 0.001;
int j;
printf ("Enter x: ");
scanf ("%f",&x);
j=0;
s=0;
do
{
j=j+1;
s=s+f(x, j);
}
while (s > eps);
printf ("\n s=%.3f ", s);
getch();
return 0;
}
float f(float k, int n)
{
float y;
y=pow(-1, n)*pow(k, 2*n-1)/(2*n+1);
return y;
};Решение задачи: «Написать функцию вычисления суммы ряда»
textual
Листинг программы
while (f(x, j) < eps)