Online Compiler C

#include <stdio.h> #include <math.h> double grad_to_red(double x) { return x/180.*M_PI;g; } double sinus( double x) { double sin =0.,pow=1.;//pow指数表达式 int factorial = 1, sign =1 ;//factorial阶乘,pow x= grad_to_red(x); pow=x; do{ double taylor = sign*pow/factorial; sin+=taylor; sign=sign*sign*sign; pow=-pow; factorial*=factorial; } } int main() { double x; scanf("%lf",&x); printf("%.3lf",sinus(x)); return 0; }
1) Этот код пытается вычислить синус угла, заданного в градусах, используя разложение в ряд Тейлора. Однако в коде есть несколько ошибок, которые мешают его корректной работе.  

2) Подсказки:  
- Обрати внимание на операцию `sign=sign*sign*sign;` — правильно ли она меняет знак на каждой итерации?  
- Проверь, как изменяются `pow` и `factorial` в цикле — соответствует ли это формуле Тейлора для синуса?