我试图使用泰勒级数和斯特林对阶乘的逼近来近似C的正弦(x),但对于n 5),我都得到了非常奇怪的答案。我从昨天开始才刚开始学习,所以如果有一些经验丰富的程序员可以看一下并告诉我怎么了,我将不胜感激
正弦泰勒级数
斯特林阶乘的近似
#include <stdio.h>
#include <math.h>
int main(){
float x,n,s,i,e,p,f,r;
f=M_PI;
e=2.7182818;
s=0;
printf("What value of sine do you want to apporximate?");
scanf("%f", &x);
printf("With what level of precision do you want to calculate it?");
scanf("%f", &n);
for(i=0;i<=n; ++i);{
r=((2*i)+1);
p=(sqrt(2*r*f)*(pow((r/e),r)));
s=s+(((pow((-1),i))*(pow(x,((2*i)+1))))/p);
}
printf("the value of sine at %f is %f",x,s);
}
最佳答案
这条线
for(i = 0; i <= n; ++i);{
有一个多余的分号。您正在执行一个空循环。
关于c - 用C中的泰勒级数逼近Sine(x)并且有很多问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42217069/