Вычислить значение функции Sin(x) разложением в ряд - C (СИ)
Формулировка задачи:
Дан y=x-x^3/3!+x^5/5!...
Мы вводим только x и n.
Программа работает неправильно помогите исправить.
Так же нужно проверить чтобы при x=6.28 она работала верно
Вот код:
#include <math.h> #include <stdio.h> main() { float x,t,s; int i,n; printf("\n x="); scanf("%f", &x); printf("\n n="); scanf("%d", &n); t=x; s=t; for (i=1; i<=n; i++); { t*=(-t)*x*x/(2*n)/(2*n+1); s+=t; } printf( "\n%3f",s); printf( "\n%3f",sin(x)); return 0; }
Решение задачи: «Вычислить значение функции Sin(x) разложением в ряд»
textual
Листинг программы
#include <math.h> #include <stdio.h> int main() { float x,t,s; int i,n; printf("x="); scanf("%f", &x); printf("n="); scanf("%d", &n); t=x; s=t; for (i=1; i<=n; i++) { t*=(-x*x/((2*i)*(2*i+1))); s+=t; } printf( "%3f\n",s); printf( "%3f\n",sin(x)); printf("\n"); system("pause"); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с математикой и вводом-выводом
include
include
- Объявление переменных: x - значение аргумента функции sin, t - временная переменная, s - накопитель суммы int main() { float x,t,s; int i,n;
- Ввод значения аргумента функции sin и количества разрядов для вычисления
printf(
x=
); scanf(%f
, &x); printf(n=
); scanf(%d
, &n); - Инициализация временной переменной t значением аргумента x t=x;
- Инициализация накопителя суммы s значением временной переменной t s=t;
- Цикл вычисления суммы разложений синуса от x в ряд for (i=1; i<=n; i++) { t=(-xx/((2i)(2*i+1))); s+=t; }
- Вывод значения накопителя суммы s на экран
printf(
%3f\n
,s); - Вывод значения функции sin(x) на экран
printf(
%3f\n
,sin(x)); - Вывод символа новой строки
printf(
\n
); - Пауза перед завершением программы
system(
pause
); - Конец программы return 0; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д