1樓:
#include "stdio.h"
#include "math.h"
double fact(int n)
double i,sum=1;
for(i=2;i<=n;i++)
sum*=i;
return sum;
double funcos(double e, double x)int i,m=1;//加一個標誌位,在1和-1之前變換double sum=0,fenzi,fenmu,t;//這兒,你的sum沒初值,結果必然是錯的,初始化為0
for(i=0;;i+=2)
fenzi=pow(x,i);
fenmu=fact(i);
t=m*fenzi/fenmu;
if(fabs(t)break;
sum+=t;
m=-m;
//加正項去負項的做法有問題 if((i+4)%4==0) sum+=t;
// else sum-=t;
return sum;
int main(void)
int repeat, ri;
double e, sum, x;
scanf("%d", &repeat);
for(ri = 1; ri <型別最好用%lf 格式控制scanf("%le%le",&e,&x);
sum=funcos(e,x);
printf("sum = %f\n", sum);
結果:你的樣例1輸出是錯的
cos(0)==1
sin(0)==0才是對的哦
2樓:匿名使用者
double funcos(double e, double x)
return sum;
}整體程式沒有大問題,你再試試吧。
3樓:匿名使用者
fenzi=pow(x,i);
fenmu=fact(i);
t=fenzi/fenmu;
if(fabs(t) if((i+4)%4==0) sum+=t; else sum-=t; include include int main s s a c b t fabs s s0 這裡應該計算的是兩次計算的差,而不應該呼叫sin x 因為你的程式是為了計算sin x 的近似值 s0 s 記錄上次的計算結果 k while t u printf lf s return 0 你要觀察兩個... include void main printf pi 5f pi 2 include int main double eps scanf le eps double sum 1 double a 1 double fenzi 1 double fenmu 1 int i 1 double pi w... 令y f x e的x次方 x 0.01f x x f x dy dx x e的0次方 e的0次方 lne 0.01 1 0.01 1.01 在實際問題中許多數值是無法完全準確的,許多數值要求不必弄得完全準確的,考慮這些數值的大概的數值,這就是近似數 或近似值,在方程中常稱為近似解 使用近似數就有一個...c語言求sin(x)近似值的問題
C語言近似求PI,急,C語言題目 求 的近似值 急!!!!!!!!!!!!!!
求e的0 01次方的近似值