Найти сумму элементов последовательности с точностью 0,001 - C (СИ)
Формулировка задачи:
Здравствуйте,подскажите начинающему в Си . Не могу найти ошибку...Задание прикрепил.
#include <math.h> #include <stdio.h> #include <conio.h> main(){ int c,z,m,n; float a,s,b; s=0;z=-1;b=1;m=1,n=1,a=1; while(fabs(a)>0.001){ a=z*b/c; z=-z; b=b*2; c=(2*n-1)*m*3; s+=a; } printf("Answer:\n S=%1.3f",s); getch(); }
Решение задачи: «Найти сумму элементов последовательности с точностью 0,001»
textual
Листинг программы
#include<stdio.h> #include<math.h> #include<conio.h> #define eps 0.001 float func(float x); int main(void) { float x; printf("\nVvedite x "); scanf("%f",&x); printf("\nsumma elementov = %f\n",func(x)); } float func(float x) { float sum,i; for(i=0,sum=0;sum<eps;i++) { sum=sum+(((pow(-1,i))*(pow(x,(2*i-1))))/((2*i)+1)); } return sum; }
Объяснение кода листинга программы
В этом коде:
- В функции
main
программа запрашивает у пользователя значение переменнойx
и передает его в функциюfunc
. - Функция
func
начинает с цикла, который суммирует элементы последовательности, используя формулу ряда Тейлора для функцииsin(x)
. - Цикл продолжается, пока сумма элементов не станет меньше заданной точности
eps
. - Значение суммы элементов возвращается в функцию
main
, где оно выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д