Написать функцию вычисления суммы ряда - 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)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д