C语言中的未知数学级数

C语言中的未知数学级数,c,math,numbers,series,C,Math,Numbers,Series,有人知道这个代码是做什么的吗?我怀疑这和泰勒级数有关,但我不确定,因为我真的不知道泰勒级数是什么。然而,它可以是任何东西。我真的不确定 #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { double x, y, a; int n; int z; x = 25.0; if (z < 0) { z = 1; x = -x; } e

有人知道这个代码是做什么的吗?我怀疑这和泰勒级数有关,但我不确定,因为我真的不知道泰勒级数是什么。然而,它可以是任何东西。我真的不确定

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
  double x, y, a;
  int n;
  int z;
  x = 25.0;
  if (z < 0) {
    z = 1;
    x = -x;
  } else
    z = 0;
  n = 0;
  a = 1;
  y = 1;
  for (n = n + 1; n < 20; n++) {
    a = a * x / n;
    y = y + a;
    printf("%i \t %.20g \t %g \n", n, y, a);
  }
  if (z) {
    x = -x;
    y = 1.0 / y;
  }
  printf("%i \t %.20g \t %g \n", n, y, a);
  return 0;
}
#包括
#包括
#包括
int main(){
双x,y,a;
int n;
intz;
x=25.0;
if(z<0){
z=1;
x=-x;
}否则
z=0;
n=0;
a=1;
y=1;
对于(n=n+1;n<20;n++){
a=a*x/n;
y=y+a;
printf(“%i\t%.20g\t%g\n”,n,y,a);
}
如果(z){
x=-x;
y=1.0/y;
}
printf(“%i\t%.20g\t%g\n”,n,y,a);
返回0;
}

启用编译器警告

如果(z<0){
是编码错误

当然应该是这样

if (x < 0) {
复习以辨别哪一个



顺便说一句,对于
x==25
,code Taylor级数不够收敛。要么需要更多的术语,要么更好-需要一种替代的/额外的方法。

不要在一行上放一条以上的语句。保持代码格式良好,尊重读者。
z
未初始化,如果(zYes,我已经编辑过了。它只是复制粘贴的,我真的不是C程序员,所以我没有注意到。虽然它确实产生了一些数字,这些数字对我理解它们的意思很重要。@Wranny你在回答中更新了代码吗?如果是,仍然错误,
z
If(z<0)之前仍然没有初始化)
line。结果将是未定义的。如果我回忆起我的cypherin.@DavidC.Rankin,最好让OP找到它,那里看起来像是ole
e^x。
  n = 0;
  a = 1;
  y = 1;
  for (n = n + 1; n < 20; n++) {
    a = a * x / n;
    y = y + a;
  y = 1 + x/1 + x*x/(1*2) + x*x*x/(1*2*3) + ....  pow(x,20)/(1*2*3*...*20)