Онлайн компилятор C

#include <stdio.h> float sinus(float x) { float a; while(a>0.001||a<-0.001){ a=-a*x*x/(n*(n+1)); n=n+2; }return a; } int main() { printf("%.3f", sinus(45)); return 0; }
这段代码试图计算正弦函数,但存在多个问题。变量 `a` 和 `n` 没有初始化,循环条件依赖未定义的值,而且计算逻辑不完整。

- 变量 `a` 和 `n` 在使用前必须赋初值。思考一下正弦函数的泰勒展开式,第一项是什么?`a` 应该从哪一项开始?
- 循环中累加项的方式不对。你需要一个变量来累加每一项的结果,而不是只更新 `a`。另外,检查一下项的正负号变化规律是否正确。