我有一个任务是制作一个关于麦克劳林系列的C程序,特别是Sin X系列。我没有';我不知道我做错了什么
[Maclaurin系列Sinx][1]我有一个任务是制作一个关于麦克劳林系列的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;
[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