Найти сумму элементов последовательности с точностью 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;
}

Объяснение кода листинга программы

В этом коде:

  1. В функции main программа запрашивает у пользователя значение переменной x и передает его в функцию func.
  2. Функция func начинает с цикла, который суммирует элементы последовательности, используя формулу ряда Тейлора для функции sin(x).
  3. Цикл продолжается, пока сумма элементов не станет меньше заданной точности eps.
  4. Значение суммы элементов возвращается в функцию main, где оно выводится на экран.

Оцени полезность:

11   голосов , оценка 4.182 из 5
Похожие ответы