#include stdio.h
我們提供的服務有:成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、遵化ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術(shù)的遵化網(wǎng)站制作公司
#include math.h
void main()
{
float sum=0,s=1,t=1,x; /*s,t最好用浮點,要不然經(jīng)常溢出,另外初值應當是1*/
int i,k=1;
scanf("%f",x);
for(i=0;i=100;i+=2) /*最多50項*/
{
if ((t/s)=1e-6)
{
sum+=(t/s)*k;
k*=-1;
}
else
break;
s*=(i+1)*(i+2); /*階乘的計算要乘以兩項*/
t*=x*x;
}
printf("x=%f\nmycos=%f\tcos=%f\n",x,sum,cos(x));
getch();
}
我發(fā)現(xiàn)了兩個錯誤。把第7行放在第5行下面,倒數(shù)第二行這個函數(shù)應該是printf而不是print。
更好的方法:你調(diào)用了math.h文件中的pow函數(shù),你有沒有發(fā)現(xiàn)math.h文件中還有三角函數(shù)。求cos(x)根本不用這么麻煩,你直接調(diào)用cos函數(shù)即可。
cos函數(shù)的原型:double cos(double angle)
double?funcos(double?e,?double?x)
{
if(e0)
{
int?i=0;
double?item=1;
double?cosx=0;
while(fabs(item)=e)
{
cosx+=item;
i++;
item*=-1*x*x/(2*i*(2*i-1))
}
return?cosx;
}
else
return?-2;
}
#includestdio.h
#includemath.h
int
main(void)
{
double
x,
e,cosx;
double
funcos(double
e,int
x);
printf("e:
");
scanf("%lf",e);
printf("x:
");
scanf("%lf",x);
//這里是%lf
cosx=funcos(e,x);
printf("cos(x)=%.3f\n",cosx);
return
0;
}
double
funcos(double
e,int
x)
{
int
flag,a,i;
double
sum,item;
double
fact(int
n);
item=1;
//這個初始化要大于e,否則不執(zhí)行下面
flag=1;
a=0;
i=0;
sum=0;
while(fabs(item)=e){
item=(flag*pow(x,a))/fact(i);
sum=sum+item;
flag=-flag;
a=a+2;
i=i+2;
}
return
sum;
}
double
fact(int
n)
{
int
i;
double
result;
result=1;
for(i=1;i=n;i++){
result=result*i;
}
return
result;
}
1、首先在電腦中打開Dev-C++,接著在打開的操作主頁面中,寫好頭函數(shù)#include stdio.h#include math.h。
2、然后在打開的C語言窗口中,寫好主函數(shù),如下圖所示。
3、主要代碼如下,在while中判斷某一項的絕對值小于10-6為止就PI的近似值。
4、最后如下圖所示,運行之后就完成了。