Нужно реализовать функцию sin() из библиотеки math.h. Я сделал через ряд Тейлора, но получаю результат в градусов, а нужно радианы как в оригинале. Может я сути не улавливаю. Например sin(30) = 0.5, а в оригинальной функции получается sin(30) = -0.988032
Сам код:
long double s21_sin(double angle) {
double sum = angle;
double sum2;
int sign = 1;
for (int i = 9; i > 0; i -= 2) {
double term = sign * power(angle, i) / factorial(i);
sum += term;
sum2 += term;
sign *= -1;
}
return sum2;
}
int main() {
double angle = 30.0;
long double result = s21_sin(angle*PI/180);
printf("Синус угла %.2f радиан равен %Lf\n", angle, result);
printf("Оригинальная sin с переводом в градусы: %f\n",sin(30.0*3.14159265/180));
printf("Оригинальная sin чистый вывод: %f",sin(30.0));
return 0;
}
Результат работы:
Синус угла 30.00 радиан равен 0.500000
Оригинальная sin с переводом в градусы: 0.500000
Оригинальная sin чистый вывод: -0.988032