Вычислить значение функции 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; }