【发布时间】:2013-10-01 07:47:18
【问题描述】:
我是编程新手,我无法弄清楚我的代码有什么问题。如果有人可以帮助我了解我的程序出了什么问题,我将不胜感激。我已经在这个问题上工作了两个小时,我知道我正在让它变得比需要的更难。这是我的新代码。我的新输出是 0.000000476837158。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main() {
double x, sinx, z, factorial, term;
int j, n, i;
x=0.5;
n=10;
i=0;
z=sin(0.5);
for(int i=0; i<=n; i++){
factorial = 1;
for(j=2*i +1; j<=i; j++)
{
factorial = factorial * j;
}
term=(pow(-1,i)*pow(x,2*i+1))/(factorial);
sinx=term++;
i=i++;
}
printf("sin(0.5) is approximately %.15lf\n", sinx);
printf("sin(0.5) by default function is %.15lf\n", z);
system("pause");
return 0;
}
【问题讨论】:
-
你实际得到了什么输出?
-
它不会产生任何输出,只是一个空白屏幕
-
你计算了
factorial(不正确)然后从不使用它。 -
不要使用泰勒系数来建立一个统一精确的近似值(但你还没有)。 lolengine.net/blog/2011/12/21/better-function-approximations
-
我必须使用 TAylor 系数来解决问题
标签: c trigonometry taylor-series