我有一个任务是制作一个关于麦克劳林系列的C程序,特别是Sin X系列。我没有';我不知道我做错了什么

我有一个任务是制作一个关于麦克劳林系列的C程序,特别是Sin X系列。我没有';我不知道我做错了什么,c,C,[Maclaurin系列Sinx][1] [1]: https://i.stack.imgur.com/y0vnG.png 实际上我已经解决了这个问题,但是使用了pow(x,y)。因为我的老师没有教我们使用pow函数。所以我试着用“for循环”来增加功率 #include <stdio.h> int main() { int N; int factorial =1; int a=3;

[Maclaurin系列Sinx][1]
[1]: https://i.stack.imgur.com/y0vnG.png

实际上我已经解决了这个问题,但是使用了pow(x,y)。因为我的老师没有教我们使用pow函数。所以我试着用“for循环”来增加功率

#include <stdio.h>
    
    int main() {
    
       
       int N;
       int factorial =1;
       int a=3;
       float sum;
       float x;
       int sign= 1;
    
       printf("enter N: ");
       scanf("%d", &N);
       
       printf("enter x in degrees: ");
       scanf("%f", &x);
       x=x/180*3.14;
       
       sum=x;
       printf("degrees in radian: %f ",x );
       
    
       for (a = 3; a <=N ; a+=2)
       {    
           int powersum= 1;
           for (int b=1; b<=a; b++)
            {
            powersum=powersum*(x);
            }
        
        factorial=factorial*a*(a-1);
        sum= sum + sign* powersum/ factorial;
        sign=sign*-1;
       }
       
        
        printf("\n sum: %.4f", sum);
    
        
        return 0;
    }

 
#包括
int main(){
int N;
整数阶乘=1;
INTA=3;
浮点数;
浮动x;
int符号=1;
printf(“输入N:”);
scanf(“%d”和“&N”);
printf(“以度为单位输入x:”;
scanf(“%f”、&x);
x=x/180*3.14;
总和=x;
printf(“以弧度表示的度数:%f”,x);
对于(a=3;a
  • 所有的
    sign
    powersum
    factorial
    都是
    int
    ,因此整数除法是在
    sign*powersum/factorial
    处进行的,值就变错了。
    powersum
    应该是
    float
    。如果您想支持更大的
    n
    factorial
    也应该是
    float
  • 符号
    的初始值是错误的。它应该是
    -1
    ,而不是
    1
    ,因为要添加的第一件事是
    -x**3/3!
  • 你的pi值是错误的,你的程序用上述两个修正给了我结果
    0.7068
    。我用
    3.1415
    而不是
    3.14
    得到了
    0.7071
      • 所有的
        sign
        powersum
        factorial
        都是
        int
        ,因此整数除法是在
        sign*powersum/factorial
        处进行的,值就变错了。
        powersum
        应该是
        float
        。如果您想支持更大的
        n
        factorial
        也应该是
        float
      • 符号
        的初始值是错误的。它应该是
        -1
        ,而不是
        1
        ,因为要添加的第一件事是
        -x**3/3!
      • 你的pi值是错误的,你的程序用上述两个修正给了我结果
        0.7068
        。我用
        3.1415
        而不是
        3.14
        得到了
        0.7071